Typescript 如何回报承诺<;类型>;当要返回的值的类型为PROMITE<;类型| null>;?类型脚本服务器
我试图在保存到数据库后返回UserRecord类型的用户,但由于Typescript 如何回报承诺<;类型>;当要返回的值的类型为PROMITE<;类型| null>;?类型脚本服务器,typescript,server,Typescript,Server,我试图在保存到数据库后返回UserRecord类型的用户,但由于getUserByUuid返回Promise,所以linter返回错误,因为我试图为createUser返回Promise的类型返回。我尝试键入assert ituser但它不工作。 我在返回前的空检查中检查它,但是皮棉没有捡起它。 处理这种情况的最好方法是什么 createUser = async (params: any): Promise<UserRecord> => { try {
getUserByUuid
返回Promise
,所以linter返回错误,因为我试图为createUser
返回Promise
的类型返回
。我尝试键入assert ituser代码>但它不工作。
我在返回前的空检查中检查它,但是皮棉没有捡起它。
处理这种情况的最好方法是什么
createUser = async (params: any): Promise<UserRecord> => {
try {
await insertUser(params);
const user = this.getUserByUuid(params.uuid);
if (user === null) {
throw new Error("user failed to save");
}
return user;
} catch (e) {
throw e;
}
};
createUser=async(参数:any):Promise=>{
试一试{
等待插入器(参数);
const user=this.getUserByUuid(params.uuid);
如果(用户===null){
抛出新错误(“用户未能保存”);
}
返回用户;
}捕获(e){
投掷e;
}
};
问题是您返回了一个承诺,该承诺永远不会为null
,您需要等待getUserByUuid
const user = this.getUserByUuid(params.uuid);//user is Promise<UserRecord|null>
谢谢完全错过了!
const user = await this.getUserByUuid(params.uuid);//user is UserRecord|null - this should work