【发布时间】:2017-02-02 22:07:14
【问题描述】:
如果同一个承诺已经在进行中,而后来者已经给出了新的解决方案,我如何让多个订阅者等待解决?
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
我希望 observable 在第一个订阅者之前保持冷态,然后在结果流式传输到所有后续并发订阅者后再次冷态。我基本上不希望对同一个底层函数有任何并发请求。
【问题讨论】:
标签: rxjs reactive-programming rxjs5