W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
隊列調度器
const queue: any;
將每個下一個任務放在隊列中,而不是立即執(zhí)行
queue
延遲使用調度程序時,其行為與 async
調度程序相同。
當沒有延遲使用時,它將同步安排給定的任務-在安排好任務后立即執(zhí)行。但是,當遞歸調用時(即在已調度的任務內部),將使用隊列調度程序調度另一個任務,而不是立即執(zhí)行,該任務將被放入隊列并等待當前任務完成。
這意味著,當您使用 queue
調度程序執(zhí)行任務時,您確定它會在該調度程序調度的其他任何任務開始之前結束。
先遞歸調度,然后再做某事
import { queueScheduler } from 'rxjs';
queueScheduler.schedule(() => {
queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue
console.log('first');
});
// Logs:
// "first"
// "second"
遞歸重新安排自身
import { queueScheduler } from 'rxjs';
queueScheduler.schedule(function(state) {
if (state !== 0) {
console.log('before', state);
this.schedule(state - 1); // `this` references currently executing Action,
// which we reschedule with new state
console.log('after', state);
}
}, 0, 3);
// In scheduler that runs recursively, you would expect:
// "before", 3
// "before", 2
// "before", 1
// "after", 1
// "after", 2
// "after", 3
// But with queue it logs:
// "before", 3
// "after", 3
// "before", 2
// "after", 2
// "before", 1
// "after", 1
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: