同步API
只有当前代码执行完才会执行下一个API。
异步API
当前API不会阻挡下面的API执行。
同步API和异步API的区别
同步可以直接从返回值得到执行结果,异步不行,需要回调函数才能得到执行结果。
function getMsg() {
setTimeout(function() {
return { msg: 'hello' }
}, 2000);
}
const msg = getMsg();
结果是undefined。
getMsg函数没有返回值,默认是undefined。由于定时器函数不会阻塞后面API的执行,函数直接执行到了返回值的这一步,返回了undefined。
function getMsg (callback) {
setTimeout(function () {
callback({
msg: 'hello '
})
}, 2000)
}
getMsg(function (data) {
console.log(data);
});
使用回调函数可以成功输出结果。