async 函数是什么?
- 一句话,它就是 Generator 函数的语法糖
- async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果。
- async函数的返回值是 Promise 对象,你可以用then方法指定下一步的操作。
- async函数内部return语句返回的值,会成为then方法回调函数的参数
async function f() {
return 'hello world';
}
f().then(v => console.log(v))
// "hello world"
var i=3
function timeout() {
return new Promise((resolve,reject)=>{
setTimeout(()=>{
if(i===3){
resolve();
}else{
reject();
}
},3000)
});
}
async function f() {
await timeout();
return 'sfsdfsfsddworld';
}
f().then(v => window.console.log(v)) //sfsdfsfsddworld
await
- 正常情况下,await命令后面是一个 Promise 对象。如果不是,会被转成一个立即resolve的 Promise 对象
async function f() {
return await 123;
}
f().then(v => window.console.log(v))
// 123
网友评论