Angularで連鎖的にWeb APIを呼び出したい
こんなのを実装したかった。
- あるAPIを呼んで、成功したら次のAPIを呼び出したい
- どちらかでエラーになった時は、共通のエラー処理をしたい
初めはRxJSでconcatとかを使うのかなと思って試したが、うまくいかず。
そもそもRxJSの機能を使うと、後から見た時にどんな動きになるか分からず、リファレンスを見る必要が出てきそうで嫌。
async文なら分かりやすく書けそうなのになあ。ということでこんな感じにした。
async process() {
try {
await this.apiService.apiA(this.id).toPromise();
await this.apiService.apiB(this.id).toPromise();
} catch (e) {
this.error = e;
}
}
toPromiseしているのが少し気になったが、気にせず使えばよいようなことをAngular推しの人も書いてたので、気にしないことにしよう!
コメントを残す