rxjs observable subscribe什么时候同步执行?

bri*_*ter 5 observable rxjs angular

使用下面的代码块,

let ob = of(1,2,3);
ob.subscribe((v)=>{
   console.log(v)
})
console.log("end")
Run Code Online (Sandbox Code Playgroud)

这些值是同步发出的。subscribe 中的函数是否保证在 print 之前执行end?所以输出将永远是。

1
2
3
end
Run Code Online (Sandbox Code Playgroud)

Fan*_*ung 3

如果您的可观察流仅运行同步代码,是的,它就像同步运行正常函数执行一样,但如果它是异步的,它将异步运行,而 Promise 将始终异步运行

您的代码的异步版本将类似于

let ob = of(1,2,3).pipe(mergeMap(num=>timer(0),_=>num);
ob.subscribe((v)=>{
   console.log(v)
})
console.log("end")
Run Code Online (Sandbox Code Playgroud)