Http 什么';“可观察的”等同于“承诺.拒绝”`

Http 什么';“可观察的”等同于“承诺.拒绝”`,http,angular,promise,observable,Http,Angular,Promise,Observable,我有这个密码 return this.http.get(this.pushUrl) .toPromise() .then(response => response.json().data as PushResult[]) .catch(this.handleError); 我想使用可观察的而不是承诺 如何将错误返回给调用方法 什么等同于承诺。拒绝 doSomeGet() { console.info("sen

我有这个密码

    return this.http.get(this.pushUrl)
        .toPromise()
        .then(response => response.json().data as PushResult[])
        .catch(this.handleError);
我想使用
可观察的
而不是
承诺

如何将错误返回给调用方法

什么等同于承诺。拒绝

    doSomeGet() {
        console.info("sending get request");

        this.http.get(this.pushUrl)
            .forEach(function (response) { console.info(response.json()); })
            .catch(this.handleError);
    }

    private handleError(error: any) {
        console.error('An error occurred', error);
        // return Promise.reject(error.message || error);
    }
}
调用方法为:

getHeroes() {
    this.pushService
        .doSomeGet();
        // .then(pushResult => this.pushResult = pushResult)
        // .catch(error => this.error = error);
}
private handleError(错误:any){
return Observable.throw('Some error information');
}

另请参见带有RxJS 6的
可观察。throw()
已更改为
throwError()


来源:

上面的代码带有
承诺。拒绝
未注释的代码可以很好地工作。我不知道为什么。你对此有什么想法吗?这种方法在RXJS中似乎不太受欢迎。。。更喜欢使用“投掷者”操作符:
Observable.throw(new Error());

// becomes

throwError(new Error());