Terminology
- CallStack
- Task queue
- Promise
関数実行順番
実行順番について勘違いしていたのでまとめる
- orderExecutor 呼ばれてCallStack に入る
- orderExecutorがCallStackから出る
- thenがTask queueに入る
-
console.log('2')
呼ばれてCallStack に入る -
console.log('2')
がCallStackから出る - CallStackがEmptyなったのでthenがTask queueからCallStackに入る
- thenが実行される
promise.js
function orderExecutor(resolve, reject) {
console.log('1'); // 1
resolve('3');
}
let orderPizza = new Promise(orderExecutor);
orderPizza.then(function (value) {
console.log(value); // 3
});
console.log('2'); // 2
// 1, 2, 3
Reference