TypeScriptでAngular 2を使用して、RESTサーバーへのHTTP呼び出しを使用するWebアプリケーションを実装しています。Angular 2 HTTP呼び出しの遅延を追加する方法
問題はいくつかのGET呼び出しが他のものより速く、それらの前にいくつかの遅延を追加する必要があるということです。この遅延を取り除き、この問題を適切に処理するにはどうすればよいですか?
たとえば、製造元を削除した後(下のコードで)、すべての製造元(ngOnInit()内のGET呼び出しを実装している)が表示されるビューに戻ってください。
import { Component, OnInit, OnDestroy } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { DataService } from '../../../data/data.service';
import { CallManufacturerServices } from '../calls/calls.service';
import { ManufacturerClass } from '../class/manufacturer.class';
@Component({
templateUrl: './app/inventory/manufacturer/view/view.component.html',
styleUrls: ['./app/inventory/manufacturer/view/view.component.css'],
providers: [CallManufacturerServices]
})
export class ViewComponent implements OnInit, OnDestroy {
private sub: any;
private ServerData: ManufacturerClass = {
ManufacturerId: 0,
ManufacturerName: 'N/D',
ManufacturerWebSite: 'N/D'
};
constructor(
private route: ActivatedRoute,
private router: Router,
private data: DataService,
private calls: CallManufacturerServices) {
}
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
let id = +params['id'];
this.getSingleManufacturer(id);
});
}
ngOnDestroy() {
this.sub.unsubscribe();
}
private getSingleManufacturer(id: number) {
this.calls.GetSingleManufacturer(id).subscribe(
(data) => {
this.ServerData = data.json();
},
error => console.log(error),
() => console.log('getSingleManufacturer complete!')
);
}
private deleteManufacturer(_manufacturer: ManufacturerClass) {
this.calls.DeleteManufacturer(_manufacturer.ManufacturerId).subscribe(
error => console.log(error),
() => console.log('deleteManufacturer complete!')
);
/* this type of delay doesn't work */
setTimeout(() => {}, 2000); // insert there the delay
/* when I go to Manufacturer the Get call will start */
this.goToManufacturer();
}
private goToManufacturer() {
this.router.navigate(['/inventory/manufacturer']);
}
private goToEdit(manufacturer: ManufacturerClass) {
this.router.navigate(['/inventory/manufacturer/edit', manufacturer.ManufacturerId]);
}
}
。それは失敗する運命にあり、何の理由もなくあなたのアプリを遅らせるでしょう。代わりに、削除要求の応答を得た後に製造元ルートに移動する必要があります。 –