私はAngular)に関するいくつかのコースを見ていて、Httpリクエストからのデータを管理するさまざまな方法があることを発見しました。
.map()
、.subscribe()
.toPromise()
、.then()
、.catch()
AngularJS Httpサービスに似ているので、アプリケーションでtoPromise()
を使用しました。
Observableを使用する必要があるのはどのシナリオですか?
angularのデフォルトのhttpリクエストはオブザーバブルを発行します。toPromise()を呼び出すことでpromiseに変換できます。ただし、必須ではありません。Angularは、httpリクエストを1回サブスクライブ解除します呼び出すことで解決します
`_xhr.removeEventListener('load', onLoad);
_xhr.removeEventListener('error', onError);
_xhr.abort();`
オブザーバブルはキャンセル可能ですが、約束はできません。
コンポーネントが破棄されてメモリリークが発生した後も、openリクエストは残ります。これは、オブザーバブルのサブスクリプションを解除するか、コンポーネントが破棄された後にdestroyメソッドを呼び出すことで防止できます。 メモリリークを防ぐためにサブスクライブを解除する方法
結論、オブザーバブルをメモリリーク防止手法で使用する方が良いでしょう。