Hej,
Mam taki problem. Wgrywam wiele plików poprzez HTTP Post. Czyli najpierw wskazuje pliki, następnie wywołuję funkcję w takiej postaci:
uploadFiles(): void {
let t = this;
if (t.selectedFiles) {
for ( let i = 0; i < t.selectedFiles.length; i++) {
t.upload(t.selectedFiles[i]) ;
}
t._service.getfiles(t.id).subscribe(files => t.files = files);
}
}
upload(file: File): void {
let t = this;
t._service.upload(file).subscribe({
obsługa błędów, progress itd.
});
}
Na samym końcu wywołuję funkcję HTTP GET getfiles(), która pobierze zawartość katalogu do którego wgrywam te pliki w celu weryfikacji, natomiast jeżeli wywołanie tej funkcji umieszczę zaraz za pętlą w funkcji uploadFiles() jak powyżej, wówczas API wali wyjątkiem, że katalog nie istnieje - z prostego powodu - funkcja upload() wykonuje się asynchronicznie i kod jest zwalniany od razu po wywołaniu, a nie wykonaniu. Czy jest jakiś sposób, aby uzależnić wywołanie funkcji od wykonania wcześniejszych?
KK