异步编程
同步API、异步API
- 同步API:只有当前API执行完毕,才能接着执行下面的API。
console.log('hello');
console.log(' world');
//hello world
- 异步API:当前API的执行不会影响和阻塞后续API的执行。
setTimeout(()=>{
console.log('hello');
},3000);
console.log('world');
// worldhelllo
异步 API 执行结果需要用回调函数获取
function getMsg (callback) {
setTimeout(function () {
callback ({
msg: 'Hello Node.js' })
}, 2000);
}
getMsg (function (msg) {
console.log(msg);
});
同步API、异步API的执行顺序
同步 API 会阻塞后面代码的执行,需要从上往下依次执行,异步 API 不会阻塞后面代码的执行
代码运行时,同步代码会放在同步代码执行区,异步代码会放在异步代码执行区和回调函数队列,等待所有同步代码完成后,再回调异步代码执行。
但如果需要依次按顺序执行三个异步 API 最简单的方法是不断的异步 API,但那将会造成