Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何回报承诺<;类型>;当要返回的值的类型为PROMITE<;类型| null>;?类型脚本服务器_Typescript_Server - Fatal编程技术网

Typescript 如何回报承诺<;类型>;当要返回的值的类型为PROMITE<;类型| null>;?类型脚本服务器

Typescript 如何回报承诺<;类型>;当要返回的值的类型为PROMITE<;类型| null>;?类型脚本服务器,typescript,server,Typescript,Server,我试图在保存到数据库后返回UserRecord类型的用户,但由于getUserByUuid返回Promise,所以linter返回错误,因为我试图为createUser返回Promise的类型返回。我尝试键入assert ituser但它不工作。 我在返回前的空检查中检查它,但是皮棉没有捡起它。 处理这种情况的最好方法是什么 createUser = async (params: any): Promise<UserRecord> => { try {

我试图在保存到数据库后返回UserRecord类型的用户,但由于
getUserByUuid
返回
Promise
,所以linter返回错误,因为我试图为
createUser
返回
Promise
的类型返回
。我尝试键入assert it
user但它不工作。
我在返回前的空检查中检查它,但是皮棉没有捡起它。
处理这种情况的最好方法是什么

  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