async可以声明一个函数是异步的
await会阻断代码,后面return 一个new promise并且执行它,
async function test() {
console.log(123);
let aa = await request()
console.log(aa);
}
test()
function request() {
return new Promise((resolve, reject) => {
proxy.$req('GET', 'https://api.oioweb.cn/api/bing', {}, '').then((res) => {
data.hhh = res.result
console.log(data);
setTimeout(() => {
resolve(res.result)
}, 2000)
}).catch((err) => {
reject(err)
})
})
}
上面这段代码,执行test(),先输出123,然后进入await修饰符后的函数,阻断后面的输出,请求结果出来后输出data,,,两秒后resolve返回后,继续执行后面的代码,输出aa.
await必须写在async函数内
await也可以直接return一个值,但是这样不会阻塞后面的代码。