1. ホーム
  2. javascript

PromiseとsetTimeoutの比較

2023-09-03 07:15:17

質問

私は以下のコードでそれを確認しました。

setTimeout(function(){console.log('setTimeout')});
Promise.resolve(1).then(function(){console.log('promise resolve')})

何度実行しても、プロミスのコールバックはsetTimeoutの前に必ずログアウトします。

私の理解では、両方のコールバックが次のtickに実行されるようにスケジュールされており、promiseが常にtimeoutより優先されるようなことが起こっているのかよく理解できません。

どのように解決するのですか?

短い答え PromisesはイベントループスタックのsetTimeoutコールバック関数より優先されます(と私は理解しています)。

ロングアンサー このビデオを見てください。とても役に立ちます。これが役立つことを願っています。

https://www.youtube.com/watch?v=8aGhZQkoFbQ

イベントループのための新しい、そして更新されたビデオをありがとう、@MickJuice。

https://www.youtube.com/watch?v=cCOL7MC4Pl0