为了账号安全,请及时绑定邮箱和手机立即绑定

TypeScript如何访问promise方法中的字段

TypeScript如何访问promise方法中的字段

茅侃侃 2022-10-27 14:42:34
我正在尝试访问 promise 方法中的字段。这是代码:// Import stylesheetsimport './style.css';export class User{    firstName:string;  lastName:string;  constructor(){    this.firstName = "Tom";    this.lastName = "Jack";    this.getName = this.getName.bind(this);  }   getName():Promise<string>{    return new Promise((resolve,reject) =>{      return resolve(`My Name is ${this.firstName} ${this.lastName}`);    }) ;  }}export class UserApi{  userName:string;  getUserName():string{    let user = new User();    user.getName().then(name => {      return name;    });    return '';  }  }// Write TypeScript code!const appDiv: HTMLElement = document.getElementById('app');appDiv.innerHTML = `<h1>TypeScript Starter</h1>`;let user = new UserApi();appDiv.append('This is ' + user.getUserName());user.getUserName()返回空。如何从 promise 方法中获取预期的字符串?换句话说,如何this在 Promise 方法中访问?更新:我对 Promise 的返回值没有问题,请注意如何从返回的类方法访问类属性或值Promise。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您应该从 getUserName 方法返回一个承诺。像这样:


getUserName(){

    let user = new User();

    return user.getName().then(name => {

        return name;

    });

}

如果你只是要返回上面的名字,你不需要“then”:


return user.getName();

当您使用 getUserName 方法时,您需要处理承诺。像这样:


let user = new UserApi();

user.getUserName().then((name) => {

    appDiv.append('This is ' + name);

});


查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信