我希望console.log
打印0到9,并且每个步骤仅评估一个懒惰的诺言。
Rx.Observable.range(0,10)
.map((i)=>new Promise((res,rej)=>setTimeout(()=>res(i),Math.random()*100)))
.subscribe(console.log,console.error)
此代码将导致记录承诺,并且所有承诺同时开始...
答案 0 :(得分:2)
使用concatMap
运算符代替map
,它可以让您逐一投影可观察的源
Rx.Observable.range(0,10)
.concatMap((i)=>new Promise((res,rej)=>setTimeout(()=>res(i),Math.random()*100)))
.subscribe(console.log,console.error)