【问题标题】:property then does not exist on type void , A typescript error属性然后在类型 void 上不存在,打字稿错误
【发布时间】:2023-03-09 18:20:01
【问题描述】:

代码:

 reset(){
  let alert = this.AlertCtrl.create({
    buttons :['ok']
  });
  this.userservice.passwordreset(this.email).then((res: any)=>{
    if(res.success){
      alert.setTitle('Email sent');
      alert.setSubTitle('please follow the instructions in the email to reset the password')

    }
    else{
      alert.setTitle('failed');
    }
  })
}

错误:

属性在类型 void 上不存在,打字稿错误

有人可以通过更正此代码 sn-p 来帮助我,以便“then”功能正常工作 干杯!

【问题讨论】:

  • 我无法解决我的查询,因为我不知道应该在重置函数中作为参数传递什么
  • 这是打字稿而不是 javascript。了解差异。 void 类型的事物没有属性
  • 请把密码重置的代码贴出来好吗?
  • 你能从你的服务中添加一些代码吗,它返回了什么?

标签: angular typescript typescript2.0


【解决方案1】:

这里的问题是 passwordreset() 函数,

应该是这样的:

passwordreset(): Promise<any> {
  // this should return a promise
  // make sure , you are returning promise from here
  return this.http.get(url)
             .toPromise()
             .then(response => response.json().data)
             .catch(this.handleError);
}

你在 promise 函数中返回了 promise,但没有 从passwordreset()返回,

请查看您的代码和更新的代码,您会有所了解

您的代码:

passwordreset(email)
{ 
        var promise = new Promise((resolve,reject)=>{ 
            firebase.auth().sendPasswordResetEmail(email).then(()=>{ 
                            resolve({success :true}); 
                            })
                            .catch((err)=>{ 
                                reject(err); 
                            }) 
                            return promise; 
        }); 
}

更新代码:

passwordreset(email): Promise<any>
{ 
        return new Promise((resolve,reject)=>{ 
            firebase.auth().sendPasswordResetEmail(email).then(()=>{ 
                                resolve({success :true}); 
                            })
                            .catch((err)=>{ 
                                reject(err); 
                            }); 
        }); 
}

【讨论】:

    【解决方案2】:

    我用这个处理

    singlesender(data){
    
    return new Promise((resolve,reject)=>{ 
      this.userService.getAccessToken().then(accesstokendata=>{
        this.accesstoken=accesstokendata;
        console.log(this.accesstoken);
        console.log("hello");
    
        console.log("hello2");
        let dataToSend = new HttpParams()
          .set("senderidforme", data.senderidforme)  
    
        let header = new HttpHeaders()
        .set("Content-type", "application/x-www-form-urlencoded")
        .set("Authorization", "Bearer "+this.accesstoken);
    
          return this.get(SERVER_URL+"web/v2/user-message-unreadcountsignle", dataToSend, header);
      })
      .catch(error=>{
    
      })
    
    
    }); 
    
    
          }
    

    【讨论】:

      猜你喜欢
      • 2017-03-26
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 2018-11-30
      • 2017-03-02
      • 2021-09-07
      • 2021-10-23
      • 2017-11-25
      相关资源
      最近更新 更多