JavaScript では、現在のコードのビットが setImmediate または setTimeout(..., 0) の実行を終了した直後にコードを実行することができます。
実行のギャップを指す正しい用語はどれですか?
これらのギャップのいずれかが発生したときにテストを続行できるようにする単体テスト用のユーティリティを作成しているため、意味のある名前を付けたいので知りたいです。
現在、私のコードは次のようになり、関数は単に wait と呼ばれます:
export default function wait(done, ...callbacks) {
let callbackIndex = 0;
function invokeNext() {
if (typeof callbacks[callbackIndex] === 'function') {
setImmediate(() => {
try {
callbacks[callbackIndex]();
}
catch (e) {
return done(e);
}
callbackIndex += 1;
invokeNext();
});
} else {
return done();
}
}
invokeNext();
}
次のように使用されます。
wait(done, () => {
//... assert something after first code gap
},
() => {
//... assert something after second code gap
});