私は、問題の2つの記事がちょうど異なる用語を使用していると思います。物品1では
:
イベントループは、そのソース内の実行順序を保証する複数のタスクのソースを持っています...記事の
イベントループは複数のタスクキューを持つことができます...タスクはevの挿入順に処理されなければなりませんエリーキュー。
異なるキューを観察についての私自身の質問に答えるために、私はそれがこのような単純なことだと思う:
function foo() {
console.log('Start of queue');
bar();
Promise.resolve().then(function() {
console.log('Promise resolved');
});
console.log('End of queue');
}
function bar() {
setTimeout(function() {
console.log('Start of next queue');
console.log('End of next queue');
}, 0);
}
foo();
//-> Start of queue
//-> End of queue
//-> Promise resolved
//-> Start of next queue
//-> End of next queue
最初タスクキュー(またはタスクソース)がfoo()
です。 foo()
はbar()
を呼び出し、bar()
はsetTimeout()
を呼び出し、新しいタスクキュー(またはタスクソース)を設定します。各タスクキューを観察する方法は、Promise
を解決することです。 Promise
コールバックはマイクロキューに挿入されます。すべてマイクロキュータスクは、すべてタスクキュー(またはタスクソース)の末尾で実行されます。我々は約束がキューの終わりと次のキューコンソールログのスタートの間を解決し参照するので、私たちはさまざまなイベント・キューを観察しているということを結論付けることができます。
出典
2017-07-28 17:16:10
Dan
イベントループはJavaScript(ECMAScript)標準の一部ではなく、実装固有のものです。私はあなたがJavaScriptを介してそれを観察できるとは思わない。 –