我希望 console.log
打印 0 到 9,并且在每一步只计算一个惰性 promise 。
Rx.Observable.range(0,10)
.map((i)=>new Promise((res,rej)=>setTimeout(()=>res(i),Math.random()*100)))
.subscribe(console.log,console.error)
此代码导致记录 promise ,并且所有 promise 同时开始......
最佳答案
使用concatMap
运算符代替map
,它允许您一个接一个地串行投影源可观察
Rx.Observable.range(0,10)
.concatMap((i)=>new Promise((res,rej)=>setTimeout(()=>res(i),Math.random()*100)))
.subscribe(console.log,console.error)
关于javascript - 在 Rx.Observable 中一次执行一个 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53469769/