同步表示“按顺序执行”:上一件事没完成,下一件事就不能开始。
console.log('A');
console.log('B');这两句一定按顺序输出。
异步表示“先登记,稍后回来处理”。
console.log('A');
setTimeout(() => console.log('B'), 0);
console.log('C');输出顺序通常是:A C B。
- 同步/异步说的是“什么时候拿到结果”。
- 阻塞/非阻塞说的是“等待时能不能干别的事”。
二者不同,但经常同时出现。
理解同步/异步有助于你理解事件循环、Promise 和并发问题。