Я изучаю обещание недавно, и когда я играю. Затем я обнаружил, что не могу объяснить для себя, что я нашел в этом коде ... Я знаю, что тогда нам следует избегать использования вложенных, потому что это одно из преимуществ.тогда больше нет ада обратного вызова.Но в этом случае я просто хочу проверить порядок процесса, и я застрял ...
let p2 = Promise.resolve('nested 1');
Promise.resolve ('1')
.then(function(result) {
console.log(result);
p2.then((result1)=> {
console.log(result1);
return 'nested 2'
})
.then((result2) => {
console.log(result2);
return 'nested 3'
})
.then((result3)=> {
console.log(result3);
})
})
.then(() => { console.log("2"); })
.then(() => { console.log("3"); })
.then(() => { console.log("4"); })
.catch(function(err) {
console.log(err);
});
setTimeout(()=>{console.log("5")}, 3)
console.log("6")
вывод:
6 // current task
1
nested 1
2
nested 2
3
nested 3
4
5 //next task because of setTimout
Что я не могу понятьэто порядок обработки от '1' до '4'.Я знаю, что все они являются микрозадачами после '6', но почему они не расположены так, как '1' => '2' => '3' => '4' => 'nested 1' => 'nested2 '=>' вложенный 3 '?Я использую Chrome.
Может ли кто-нибудь дать мне несколько советов?Большое спасибо.