终于找到一个用 rxjs 的场景

24 天前
 tcper

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 次,比较省心。

925 次点击
所在节点    前端开发
2 条回复
NerdHND
4 天前
前几天还在沉迷 rxjs, 但是尝试几天发现真的可以用的地方好少, 大部分情况没这么复杂的请求. 以后做 ws webrtc 看看不知道有没有场景.
tcper
4 天前
@NerdHND ws, sse 都比较适合。
别的场景要看你对 rxjs 的熟练程度,不熟练是不会想到用 rxjs 。
另外 rxjs 的异步怎么和 react/vue 变量的同步,和状态管理的同步也是个问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1074772

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX