众所周知:js是单线程的。
async:异步。其实返回的是一个promise。
await:等待。
promise:承诺,有三种状态,pendding,resolve,reject,他承诺一定会给你一个说法,也就是一定会给你返回一个值。写法是.then(){},这样就可以代替之前回调函数的写法,回调地狱。
说明:只要是在函数前面加了async,就表示这个函数是异步的,表示会被浏览器的其他线程调用(会被放入到一个队列中),此时主次线程就不会进入这个函数,会继续执行下面的其他任务。一般await会和async配合使用,await加在方法前面表示需要等待这个方法执行完后才能执行下面的任务。
async function(){
let result=await doSave();
console.log("我是一个大傻逼!");
}
doSave(){
return new Promise((resolve,reject)=>{
$.Ajax{.....
success(){
if(resule.success){resolve();}else
{reject();}
}
failure(){}
}
});
}