上記のコードでは、結果が 1,2 ではなく 2,1 になるのはなぜですか?
setTimeout が最初にタスク キューに追加されるのではありませんか?
黄舟2017-06-26 10:59:47
具体的に言えば、setTimeout
有一个4ms的最短时间,也就是说不管你设定多少,反正最少都要间隔4ms才运行里面的回调(当然,浏览器有没有遵守这个规范是另外一回事儿)。而Promise
の非同期にはこの問題はありません。
具体的な実装に関しては、2 つの非同期キューは異なります。Promise
が配置されている非同期キューの方が優先されます。
詳細については、次の記事をご覧ください: Promise の JavaScript でのイベント ループ、タスク、マイクロタスクの確認