首页 > 解决方案 > 异步函数的返回类型必须是全局 Promise类型

问题描述

在此处输入图像描述

为什么 TSlint 仍然说“异步函数或方法的返回类型必须是全局 Promise 类型”?

我不明白出了什么问题。

更新: 在此处输入图像描述

标签: typescriptvue.jsasync-awaittslint

解决方案


尝试返回Promise与预期的泛型类型相对应的 -wrapped 值Promise,如下所示:

@Action
public async register(registerInfo: Account): Promise<boolean> {
  const res = await http.post('users/', registerInfo);

  return new Promise<boolean>((resolve, reject) => {
    resolve(res.data.success);

    // Or reject() if something wrong happened
  });

  // Or simply return a resolved Promise
  return Promise.resolve(res.data.success);
}

实际上,您也应该能够then()得到结果:

@Action
public async register(registerInfo: Account): Promise<boolean> {
  return await http
            .post('users/', registerInfo)
            .then(res => res.data.success);
}

推荐阅读