为什么我得到this.http.get(...)。subscribe不是angular2中的函数

时间:2016-05-13 11:02:04

标签: typescript angular

我的代码是

    import 'rxjs/Rx';
    ...
    let _this = this;
    return new Promise(function(resolve, reject) {
        _this.http[method](url, data, {
            headers: headers
        })
        .toPromise()
        .then(
            (data) => {
                resolve(data);
            },
            error => {
                reject(error);
            }
        );
    });

"订阅"不是来自我的代码,看起来像是有点原始的东西。

错误讯息:

EXCEPTION: Error: Uncaught (in promise): TypeError: _this.http.get(...).subscribe is not a function

1 个答案:

答案 0 :(得分:2)

您正在打击从基于promise的异步范例移植到reactive-extensions替代方案的 Angular2 计划。而不是使用承诺,而是使用subscribe代替:

import 'rxjs/Rx';
...
invoke<T>(onNext: (data: T) => void, onError: (error: any) => any) {
    this.http[method](url, data, {
        headers: headers
    })
    .map(response => response.json() as T)
    .subscribe(onNext, onError);
});

我也写了一篇关于此的博文。

https://ievangelist.github.io/blog/angular-2-http/