䏿¹è¿æ®µä»£ç çè¾åºæ¯ä»ä¹ï¼
éè¦ç¨åº¦: 5
console.log(1);
setTimeout(() => console.log(2));
Promise.resolve().then(() => console.log(3));
Promise.resolve().then(() => setTimeout(() => console.log(4)));
Promise.resolve().then(() => console.log(5));
setTimeout(() => console.log(6));
console.log(7);
è¾åºç»æä¸ºï¼1 7 3 5 2 6 4ã
è¿éé¢å ¶å®å¾ç®åï¼æä»¬åªéè¦ç¥é微任å¡åå®ä»»å¡é忝å¦ä½å·¥ä½çã
让æä»¬ä¸èµ·ä¸æ¥ä¸æ¥å°ççåçäºä»ä¹ã
console.log(1);
// 第ä¸è¡ç«å³æ§è¡ï¼å®è¾åº `1`ã
// å°ç®å为æ¢ï¼å®ä»»å¡éåå微任å¡éå齿¯ç©ºçã
setTimeout(() => console.log(2));
// `setTimeout` å°åè°æ·»å å°å®ä»»å¡éåã
// - å®ä»»å¡éåä¸çå
容ï¼
// `console.log(2)`
Promise.resolve().then(() => console.log(3));
// å°åè°æ·»å å°å¾®ä»»å¡éåã
// - 微任å¡éåä¸çå
容ï¼
// `console.log(3)`
Promise.resolve().then(() => setTimeout(() => console.log(4)));
// 带æ `setTimeout(...4)` çåè°è¢«éå å°å¾®ä»»å¡éåã
// - 微任å¡éåä¸çå
容ï¼
// `console.log(3); setTimeout(...4)`
Promise.resolve().then(() => console.log(5));
// åè°è¢«æ·»å å°å¾®ä»»å¡éå
// - 微任å¡éåä¸çå
容ï¼
// `console.log(3); setTimeout(...4); console.log(5)`
setTimeout(() => console.log(6));
// `setTimeout` å°åè°æ·»å å°å®ä»»å¡éå
// - å®ä»»å¡éåä¸çå
容ï¼
// `console.log(2); console.log(6)`
console.log(7);
// ç«å³è¾åº 7
æ»ç»ä¸ä¸ï¼
- ç«å³è¾åºæ°å
1å7ï¼å 为ç®åçconsole.logè°ç¨æ²¡æä½¿ç¨ä»»ä½éåã - ç¶åï¼ä¸»ä»£ç æµç¨æ§è¡å®æåï¼å¼å§æ§è¡å¾®ä»»å¡éåã
- å
¶ä¸æå½ä»¤è¡ï¼
console.log(3); setTimeout(...4); console.log(5)ã - è¾åºæ°å
3å5ï¼setTimeout(() => console.log(4))å°console.log(4)è°ç¨æ·»å å°äºå®ä»»å¡éåçå°¾é¨ã - ç°å¨å®ä»»å¡éå䏿ï¼
console.log(2); console.log(6); console.log(4)ã
- å
¶ä¸æå½ä»¤è¡ï¼
- å½å¾®ä»»å¡éå为空åï¼å¼å§æ§è¡å®ä»»å¡éåãå¹¶è¾åº
2ã6å4ã
æç»ï¼æä»¬çå°çè¾åºç»æä¸ºï¼1 7 3 5 2 6 4ã