Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rxjs调度程序:什么';asap和async的区别是什么?_Rxjs - Fatal编程技术网

Rxjs调度程序:什么';asap和async的区别是什么?

Rxjs调度程序:什么';asap和async的区别是什么?,rxjs,Rxjs,有人能告诉我Scheduler.asap和Scheduler.async的区别吗 对我来说也一样: const observable = Observable.create(function (observer) { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }) .observeOn(asap); //.observeOn(async); console.log('ju

有人能告诉我Scheduler.asap和Scheduler.async的区别吗

对我来说也一样:

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');
返回:

just before subscribe
just after subscribe
got value 1
got value 2
got value 3
done

Code-

异步调度程序最适合用于基于时间的操作(使用设置间隔,即使时间延迟为0…例如轮询),其中asap调度程序更适合于需要尽可能快地进行的异步操作,而无需考虑时间限制


请参阅更多。

异步调度程序最适合用于基于时间的操作(使用
设置间隔
,即使时间延迟为0…例如轮询),其中
asap
调度程序更适合于需要尽可能快地进行的异步操作,而无需考虑时间限制


查看更多。

来自:Randall Koutnik的书《用RxJS构建反应式网站》:


RxJS有两种不同类型的异步调度程序尽快异步。关键区别在于,尽快使用微任务队列(Node.js中的process.nextTick()或浏览器中的setTimeout)安排运行可观察事件.这意味着事件在任何同步代码之后运行,但在任何其他计划的异步任务之前运行。另一个主要的调度程序,async,使用setTimeout进行调度,适用于一些基于时间的操作

来自:Randall Koutnik的书《用RxJS构建反应式网站》:


RxJS有两种不同类型的异步调度程序尽快异步。关键区别在于,尽快使用微任务队列(Node.js中的process.nextTick()或浏览器中的setTimeout)安排运行可观察事件.这意味着事件在任何同步代码之后运行,但在任何其他计划的异步任务之前运行。另一个主要的调度程序,async,使用setTimeout进行调度,适用于一些基于时间的操作

当您在setTimeout或setInterval(事件循环宏任务)中包装时,Aysnc调度程序将被视为


当您包装在承诺中时要考虑的Asap调度程序(当前宏任务之后执行的下一个微任务)

当您包装在setTimeout或setInterval中时要考虑的Aysnc调度程序(事件循环宏任务)


当您在承诺中包装时要考虑的Asap调度程序(当前宏任务之后执行的下一个微任务)

您阅读过文档吗?有一个表格描述了它们之间的差异——您读过文档了吗?有一个表格描述了它们之间的差异-