董俊辉的前端博客 - async
type: channel
link: https://www.dongjunhui.com/tag/async/
items: [JavaScript]使用async函数需要注意的一个问题

[JavaScript]使用async函数需要注意的一个问题
type: item
date: 2021-11-16T17:33:00+08:00
description: async 函数适合执行一些流程，不要试图使用 async 函数返回一些东西。有一个错误的例子就是在Vue的模板中绑定一个计算属性，这个计算属性里面使用 async 函数获取数据。示例代码如下：HTML模板部分： {{computedValue}} JavaScript部分：//...... computed: { async computedValue(){ let val = await aAsyncMethod(); return val; } } 如果你这么做了，你永远只会得到如下字符串：'[object Promise]' 为什么？原因很简单，就像 MDN 上这篇文档 MDN - async函数 介绍的，async 遇到await的时候会立即返回一个Promise，把控制权交出，直到 await 后面的异步操作有结果(resolve或者reject)才会继续执行后面的代码。可以说，async 函数的返回值永远是一个Promise。END