web-dev-qa-db-ja.com

「Promise.reject」に相当する観察可能なものは何ですか

私はこのコードを持っていました

    return this.http.get(this.pushUrl)
        .toPromise()
        .then(response => response.json().data as PushResult[])
        .catch(this.handleError);

observableの代わりにPromiseを使用したかった

呼び出し元のメソッドにエラーを返すにはどうすればよいですか?

Promise.rejectと同等のものは何ですか?

    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);
}
28
Elad Benda
private handleError(error: any) {
    return Observable.throw('Some error information');
}

http.request()から例外を正しくキャッチする方法 も参照してください。

30

RxJS 6ではObservable.throw()throwError()に変更されました

Observable.throw(new Error());

// becomes

throwError(new Error());

ソース: RxJS v5.xからv6へのアップデートガイド-デプラケーション

11
mhx