V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tcper
V2EX  ›  前端开发

终于找到一个用 rxjs 的场景

  •  1
     
  •   tcper · 62 天前 · 1146 次点击
    这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。

    websocket ,如果直接写的话,各种onmessage onopen处理代码写的比较恶心

    另外,写个onclose onerror重连,里面清理一下状态,那代码就无可避免很多上下文变量

    而用 rxjs 就比较省心

    const subject = webSocket('ws://localhost:8081');
    
    subject.pipe(
      retry(10)
    ).subscribe({
      next: msg => console.log('message received: ' + msg), // Called whenever there is a message from the server.
      error: err => {
        console.log("err", err)
      }, 
      complete: () => console.log('complete') // Called when connection is closed (for whatever reason).
     });
    }
    

    断了重连 10 次,比较省心。

    3 条回复    2024-10-23 11:07:08 +08:00
    NerdHND
        1
    NerdHND  
       43 天前
    前几天还在沉迷 rxjs, 但是尝试几天发现真的可以用的地方好少, 大部分情况没这么复杂的请求. 以后做 ws webrtc 看看不知道有没有场景.
    tcper
        2
    tcper  
    OP
       42 天前
    @NerdHND ws, sse 都比较适合。
    别的场景要看你对 rxjs 的熟练程度,不熟练是不会想到用 rxjs 。
    另外 rxjs 的异步怎么和 react/vue 变量的同步,和状态管理的同步也是个问题。
    minglanyu
        3
    minglanyu  
       31 天前
    rxjs 的场景确实需要慢慢挖掘
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:13 · PVG 04:13 · LAX 12:13 · JFK 15:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.