1. JavaScript / Говнокод #27369

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    const connectToServerEpic = (
      action$,
    ) => (
      action$
      .pipe(
        ofType(CONNECT_TO_SERVER),
        switchMap(({
          hostname,
          port,
          protocol,
          protocolVersion,
          reconnectionTimeout,
        }) => (
          action$
          .pipe(
            ofType(RECONNECT_TO_SERVER),
            takeUntil(
              action$
              .pipe(
                ofType(DISCONNECT_FROM_SERVER),
              )
            ),
            startWith(null),
            map(() => (
              webSocket({
                protocol: protocolVersion,
                url: (
                  protocol
                  .concat('://')
                  .concat(hostname)
                  .concat(':')
                  .concat(port)
                ),
                WebSocketCtor: WebSocket,
              })
            )),
            switchMap((
              webSocketConnection$,
            ) => (
              webSocketConnection$
              .pipe(
                takeUntil(
                  action$
                  .pipe(
                    ofType(
                      RECONNECT_TO_SERVER,
                      DISCONNECT_FROM_SERVER,
                    ),
                  )
                ),
                catchError(() => (
                  timer(
                    reconnectionTimeout,
                  )
                  .pipe(
                    takeUntil(
                      action$
                      .pipe(
                        ofType(
                          RECONNECT_TO_SERVER,
                          DISCONNECT_FROM_SERVER,
                        ),
                      )
                    ),
                    mapTo(reconnectToServer()),
                  )
                )),
                map(receivedWebSocketMessage),
                startWith(
                  connectionReady(
                    webSocketConnection$,
                  )
                ),
              )),
            )),
          )
        )),
      )
    )

    https://itnext.io/simplifying-websockets-in-rxjs-a177b887f3b8

    Запостил: DypHuu_niBEHb, 21 Апреля 2021

    Комментарии (36) RSS

    • SEO: Simplifying WebSockets in RxJS.
      Ответить
    • Я просто в "PHP" пишу "<?php" и теку.
      Ответить
    • на листенеры переписать примерно столько же получится
      Ответить
      • //
                     )
                    ),
                  )),
                )),
              )
            )),
          )
        )
        Ответить
        • Легче уж просто взять LISP, чем писать эту пародию ня него.
          Ответить
        • Да, няпоминаю десятое правило Гринспена:

          "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."
          Ответить
          • Значит, две такие программы содержат полную имплементацию лиспа обыкновенного!
            Ответить
            • Не, две такие программы содержат две хреновых реализации более-менее той же части лиспа. Ну может быть в сумме будет чуть-чуть больше фич, чем в каждой по-отдельности.
              Ответить
              • Но можно набрать много таких программ, выковырять из них куски лиспа и собрать полноценный лисп.
                Ответить
          • https://memegenerator.net/img/instances/68193951/loose-lisp-sync-chips.jpg
            Ответить
        • каждый пытается в функциональщину как может, не душни
          Ответить
          • В функциональщину не надо пытаться, ее надо использовать (если нужна) или не использовать (если нахуй не нужна). А не "пытаться" в нее, чтоб потом перед кем-то выебываться знаниями какой-то хуиты (которая для твоих задач вообще нахуй не нужна), воображая себя охуеть каким умным компутер сраентистом при этом.
            Ответить
            • >ее надо использовать (если нужна) или не использовать (если нахуй не нужна)
              какой максимализм )))
              Ответить
    • Говорят, если 11 вложенных if'ов заменить ня 11 вложенных вызовов и замыканий, то код сразу же станет чистым и читаемым, как Hello World. Функционяльщина — это магия!
      Ответить
    • А у меня есть папочка "node_modules", в ней 60 000 файлов, вот
      Ответить

    Добавить комментарий