다음 코드가 어떻게 실행되는지 이해할 수 없습니다. 왜 "1"은 "b"다음에 "h"는 "3"뒤에 오는거야? 순서는 다음과 같습니다 : a, b, 1, 2, h, 3? 어떤 기사에서는 "이벤트 루프 대기열"과 "작업 대기열"의 차이가 다음과 같은 결과를 가져옵니다. 그러나 어떻게? ECMAScript 2015 - 8.4 Jobs and Job Queues의 사양을 읽고 Promise'job의 작동 방식을 알고 싶지만 더 혼란 스럽습니다. 누군가 나를 도울 수 있습니까? 고맙습니다! "이벤트 루프 대기열"과 "작업 대기열"의 차이점은 무엇입니까?
var promise = new Promise(function(resolve, reject) {resolve(1)});
promise.then(function(resolve) {console.log(1)});
console.log('a');
promise.then(function(resolve) {console.log(2);});
setTimeout(function() {console.log('h')}, 0);
promise.then(function(resolve) {console.log(3)});
console.log('b');
// a
// b
// 1
// 2
// 3
// h
나는 약속이 비동기 알고 있지만에서는 setTimeout (..) 비동기 작업의 콜백은 약속의 비동기 작업 후 항상. 왜?
약속의 비동기 -는 그 때는이 비동기 적으로 호출되는 등의 경우에도 인라인 동기 찾고 코드 - 그 약속 –