角度> = 4.3
https://angular.io/guide/http
時々、アプリケーションは、大量のデータを転送する必要があり、それらの転送は時間がかかることがあります。このような転送の進捗状況に関するフィードバックを提供することは、ユーザーエクスペリエンスの習慣としては優れています。たとえば、ファイルをアップロードすると、@ angle/common/httpがこれをサポートします。
は最初の特別reportProgressオプションセットでのHttpRequestのインスタンスを作成し、有効にprogressイベントとリクエストを作成するには:
const req = new HttpRequest('POST', '/upload/file', file, {
reportProgress: true,
});
このオプションでは、progressイベントの追跡を可能にします。各イベントでUIを実際に更新する場合は、進捗イベントごとに変更検出がトリガーされることを覚えておいてください。
次に、HttpClientのrequest()メソッドを使用して要求を行います。結果は、インターセプタの場合と同様に、Observableイベントになります。
http.request(req).subscribe(event => {
// Via this API, you get access to the raw event stream.
// Look for upload progress events.
if (event.type === HttpEventType.UploadProgress) {
// This is an upload progress event. Compute and show the % done:
const percentDone = Math.round(100 * event.loaded/event.total);
console.log(`File is ${percentDone}% uploaded.`);
} else if (event instanceof HttpResponse) {
console.log('File is completely uploaded!');
}
});
現時点では、HTTPサポートは、ダウンロードとアップロードの両方の進行状況を追跡する機能をサポートしていません。 – Bazinga