我正在尝试访问 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);
});
添加回答
举报
0/150
提交
取消