【问题标题】:How import toPromise into component?如何将 toPromise 导入组件?
【发布时间】:2016-08-11 17:01:51
【问题描述】:

我在 ASP.NET 项目中使用 Angular 2.0 并遇到将 rxjs 导入组件以在 this.http.get/@ 中使用的错误987654322@.

角度设置:

    "@angular/common": "2.0.0-rc.4",
    "@angular/compiler": "2.0.0-rc.4",
    "@angular/core": "2.0.0-rc.4",
    "@angular/forms": "0.2.0",
    "@angular/http": "2.0.0-rc.4",
    "@angular/platform-browser": "2.0.0-rc.4",
    "@angular/platform-browser-dynamic": "2.0.0-rc.4",
    "@angular/router": "3.0.0-beta.2",
    "@angular/router-deprecated": "2.0.0-rc.2",
    "@angular/upgrade": "2.0.0-rc.4",

    "rxjs": "5.0.0-beta.6"

在组件上:

import 'rxjs/add/operator/toPromise';

在函数中,我尝试从http.get requet 获取数据并使用toPromise 处理响应:

    getData(): Promise<IToDo[]> {
        return this.http.get('app/shared/todos.json')
            .toPromise() // <- ERROR
            .then(res => res.json())
            .catch(this.handleError);
    }
    private handleError(error: any): Promise<any> {
        return Promise.reject(error.message || error);
    }

我猜toPromise() 没有正确导入。但是我检查了node_modules所有的forders都存在并且toPromise.d.tstoPromise.jstoPromise.js.map可用。

错误:

Severity Code Description Project File Line Suppression State
Error TS2339 Property 'toPromise' does not exist on type 'Observable<Response>'. TypeScript Virtual Projects C:\Users\max\Desktop\LocalAccountsApp-master\LocalAccountsApp\app\home\GL\gl.service.ts 39 Active

【问题讨论】:

  • 您能详细说明一下吗?错误是什么?
  • 你的根组件中有import './rxjs-operators';吗?
  • 不,我没有这样的导入。

标签: javascript angularjs promise angular-promise


【解决方案1】:

这通常是由最新版本引起的。解决此问题的方法是使用 RC-4 或 RC-5 版本以及 RX-JS。你可以有一个通用的 import 'rxjs/Rx';

【讨论】:

    猜你喜欢
    • 2021-03-18
    • 1970-01-01
    • 2018-08-26
    • 2019-10-10
    • 2020-08-18
    • 2017-11-25
    • 1970-01-01
    • 2017-05-18
    • 2022-10-04
    相关资源
    最近更新 更多