有人可以告诉我Scheduler.asap和Scheduler.async之间的区别吗?
对我来说一样:
$request->session()->keep('status');
返回:
const observable = Observable.create(function (observer) {
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete();
})
.observeOn(asap);
//.observeOn(async);
console.log('just before subscribe');
observable.subscribe({
next: x => console.log('got value ' + x),
complete: () => console.log('done'),
});
console.log('just after subscribe');
代码 - https://stackblitz.com/edit/rxjs-85vczc?file=app/hello.component.ts
答案 0 :(得分:0)
async
调度程序最适合用于基于时间的操作(使用setInterval
即使时间延迟为0 ... ex.polling),其中asap
调度程序更适合需要尽可能快地发生的异步操作,无论时间如何。
查看更多here。
答案 1 :(得分:0)
来自:Randall Koutnik的书“使用RxJS构建反应性网站”。 :
RxJS 具有两种不同类型的异步调度程序:尽快和异步 。主要区别在于 ap 将可观察的事件安排为使用 micro任务队列(Node.js中的process.nextTick()或浏览器)。这意味着事件在任何同步代码之后之后,但在任何其他预定的异步任务之前运行强>。另一个主要的调度程序 async 使用 setTimeout 进行调度,适用于一些基于时间的操作。
答案 2 :(得分:0)
当您包装在 setTimeout 或 setInterval(事件循环宏任务)中时要考虑的 Aysnc 调度程序
当您包装在 Promise(在当前宏任务之后执行的下一个微任务)时要考虑的 Asap 调度程序