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

我正在尝试访问 promise 方法中的字段。


这是代码:


// Import stylesheets

import './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。


茅侃侃
浏览 125回答 1
1回答

泛舟湖上清波郎朗

您应该从 getUserName 方法返回一个承诺。像这样:getUserName(){&nbsp; &nbsp; let user = new User();&nbsp; &nbsp; return user.getName().then(name => {&nbsp; &nbsp; &nbsp; &nbsp; return name;&nbsp; &nbsp; });}如果你只是要返回上面的名字,你不需要“then”:return user.getName();当您使用 getUserName 方法时,您需要处理承诺。像这样:let user = new UserApi();user.getUserName().then((name) => {&nbsp; &nbsp; appDiv.append('This is ' + name);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript