RxJS async

2020-09-27 09:42 更新

異步調(diào)度程序

const async: any;

描述

像使用 setTimeout(task,duration)一樣調(diào)度任務(wù)

async調(diào)度程序通過將任務(wù)放在 JavaScript 事件循環(huán)隊(duì)列中來異步調(diào)度任務(wù)。最好將其延遲時(shí)間或安排間隔重復(fù)的任務(wù)。

如果您只是想“推遲”任務(wù),也就是說要在當(dāng)前執(zhí)行同步代碼結(jié)束后立即執(zhí)行(通常由來實(shí)現(xiàn)setTimeout(deferredTask, 0)),那么最好選擇 asap 調(diào)度程序。

例子

使用異步調(diào)度程序延遲任務(wù)

import { asyncScheduler } from 'rxjs';


const task = () => console.log('it works!');


asyncScheduler.schedule(task, 2000);


// After 2 seconds logs:
// "it works!"

使用異步調(diào)度程序定期間隔執(zhí)行任務(wù)

import { asyncScheduler } from 'rxjs';


function task(state) {
  console.log(state);
  this.schedule(state + 1, 1000); // `this` references currently executing Action,
                                  // which we reschedule with new state and delay
}


asyncScheduler.schedule(task, 3000, 0);


// Logs:
// 0 after 3s
// 1 after 4s
// 2 after 5s
// 3 after 6s
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號