await
调用的函数不一定必须是 async
函数。
await
关键字通常用于 async
函数内部,用来等待一个 Promise
对象的解决。但如果被 await
调用的对象不是 Promise
,那么它会被直接返回。
function notPromiseFunction() {
return 42;
}
async function example() {
const result = await notPromiseFunction();
console.log(result);
}
example();
然而,如果希望通过 await
实现异步等待的效果,通常被 await
调用的应该是返回 Promise
的 async
函数。比如:
async function promiseFunction() {
return new Promise((resolve) => {
setTimeout(() => resolve(100), 1000);
});
}
async function anotherExample() {
const result = await promiseFunction();
console.log(result);
}
anotherExample();
在这个例子中,通过 await
等待了 promiseFunction
中异步操作的完成,并获取到最终的结果。
如果没有写return的情况 那么执行结果是什么样子的呢?
<script>
export default {
name: 'test',
data() {
return {
msg: '李荣浩'
}
},
async mounted() {
const test = () => {
new Promise(resolve => {
setTimeout(() => {
this.msg = '大拿哥'
resolve()
}, 1000)
})
}
await test()
this.msg = '等待你的人'
}
}
</script>
<template>
<h2>{{ msg }}</h2>
</template>
那么我们改造一下代码
<script>
export default {
name: 'test',
data() {
return {
msg: '李荣浩'
}
},
async mounted() {
const test = () => {
return new Promise(resolve => {
setTimeout(() => {
this.msg = '大拿哥'
resolve()
}, 1000)
})
}
await test()
this.msg = '等待你的人'
}
}
</script>
<template>
<h2>{{ msg }}</h2>
</template>
标签:resolve,await,test,Promise,msg,async From: https://www.cnblogs.com/yeminglong/p/18336340