【发布时间】:2022-10-15 21:15:59
【问题描述】:
我有一个async 函数,我打算返回一个MyResponseType 类型的对象。据我了解,async 函数必须返回Promise,因此我创建了以下内容:
import mongoose from 'mongoose'
import MyModel from './models/MyModel'
import { MyResponseType } from "../common/types";
const myFunc = async (
title: string,
text?: string
): Promise<MyResponseType> => {
const result = await MyModel.create({
title,
text,
});
return {
message: 'Success',
result
};
};
我的问题是:
-
这是从
async函数返回的正确方法,假设我希望在调用者调用await myFunc({...})时结果处于resolved状态? -
为什么打字稿不抱怨返回类型是
MyResponseType,即使它期待Promise<MyResponseType>?是否正在进行一些隐式转换?
【问题讨论】:
-
async函数的返回值总是包装在 Promise 中。
标签: typescript async-await promise