角度测试:勾与同花顺假异步块中的微任务



据我从阅读 Angular 测试文档开始的理解,调用tick()会刷新fakeAsync块中的(支持的(宏任务和微任务队列。在这种情况下,我认为在引擎盖下,呼叫tick()将与进行一些额外的呼叫+呼叫flushMicrotasks()相同。

问题是,有没有我应该使用的情况:

it('should pass', fakeAsync(() => {
// given some setup...
doSomethingAsynchronous();
flushMicrotasks();
// do some assertions...
}));

而不是

it('should pass', fakeAsync(() => {
// given some setup...
doSomethingAsynchronous();
tick();
// do some assertions...
}));

本文摘录于此处。

宏任务按 setTimeout、setInterval、setImimmediate 等进行排队。 process.nextTick, Promises, MutationObserver, etc

.

因此,如果您使用的是setTimeouts,setInterval等,请使用tick((,如果您使用某些promises,则可以使用tick((或flushMicrotasks((。

最新更新