Цикл событий node.js, порядок выполнения setTimeout и Promise.then нестабилен - PullRequest
0 голосов
/ 02 мая 2018

код:

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

Я прочитал документ node.js и знаю о 6 фазах цикла событий. Но я не могу понять, почему вывод кода нестабилен? Я думаю, что вывод должен быть (environment: node.js 8.6.0)

setTimeout1
setTimeout2
promise

но результат

setTimeout1
promise
setTimeout2

или

setTimeout1
setTimeout2
promise
...