3
如果多个订户等待相同的承诺,以便在给定新分辨率的情况下已经与后来的客户进行交涉,那么该如何处理?RxJs - 多个订户等待相同的承诺结果
doSomething =() => {
return new Promise((resolve) => {
setTimeout(() => resolve(Math.random(), 1000)
})
}
// how to define obs?
obs.subscribe(v => console.log(v)); // 0.39458743297857473
obs.subscribe(v => console.log(v)); // 0.39458743297857473
obs.subscribe(v => console.log(v)); // 0.39458743297857473
setTimeout(() => obs.subscribe(v => console.log(v)), 2000); // 0.9485769395265746
我想可观察到的仍然寒冷,直到第一个用户,然后再冷的结果传输到所有后续并发用户后再次。我基本上不希望对同一个底层函数发出任何并发请求。
尼斯回答,虽然一些链接的文档将是很好! –
好点,我添加了一些链接到文档。 – olsn
这适用于我给的例子,所以我接受了。非常感谢您的帮助。我实际上早先尝试过,它不适合我的实际使用情况,而不是我为简化事情而给出的例子。我现在看到它为什么不起作用,它不是可重入的。在使用obs的管道的末尾,有一个库代码在订阅,并且在onNext块中,它正在生成一个动作,.... drumroll ...依赖于obs,因此死锁。我不知道我总是以这些血腥的可怕边缘事件结束! :-) – mysomic