angular - 如何访问 Promise then() 函数中的类变量?

标签 angular http typescript angular-promise

<分区>

我在 Angular4 + PHP 网站上工作,我在其中使用 Promise 向服务器发送 HTTP 请求,因为我希望我的应用程序根据服务器的响应执行路由。我想访问 then() 中的一个类变量,但它抛出 undefined() 错误。

这是我的代码:

status = false;

checkUser(): Promise<any>{
// .....
    return this.http
        .get('http://localhost:8000/api/user', this.options)
        .toPromise()
        .then(this.extractData)
        .catch(this.handleError);
}

private extractData(res: any) {
    data = res.json();
    this.status = data.status; // here it throws error undefined 
    return this.status; 
}

还有其他方法可以实现吗?

最佳答案

如果传递函数引用,this 将不再指向本地类实例。

你可以使用bind

.then(this.extractData.bind(this))

或箭头函数

.then((res) => this.extractData(res))

获得所需的行为。

关于angular - 如何访问 Promise then() 函数中的类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48064389/

相关文章:

javascript - 从应用程序中直接输入的网址读取路由参数

android - 如何连接到 Android 上的代理?

http - 从 VBA (WinHTTP) 通过 HTTP 上传文件

node.js - 扩展 “named-routes” 的 Express JS 路由器 TypeScript 定义

javascript - 将对象转换为 url 查询参数

css - 使用 ngFor 的 Angular flex 布局

angular - RXJS - 对属性数组的多个可观察调用

ruby-on-rails - 如何在rails中制作可变路线

javascript - Angular 2 将 JSON 对象传递到新窗口

typescript - 递归获取对象/记录的属性名称