J'essaye d'exécuter la requête multiple de XHR (à l'intérieur de la fonction getImages
), chacun emballé dans un observable (à l'intérieur de la fonction getImage
), en utilisant forkJoin
. Cependant, aucune des demandes n'est exécutée, c'est-à-dire que observer.next()
n'est jamais exécutée. J'ai essayé d'utiliser zip
au lieu de forkJoin
mais cela ne fonctionne pas non plus. Je m'assure que je peux complete
sur tous les observables que je crée.observable forkjoin n'exécute jamais l'angulaire observable2
getImages(urls: string[]) {
Observable.forkJoin(...urls.map(url => {return this.getImage(url)}))
.subscribe(
(result) => {console.log(result)},
(err) => {console.log(err)},
() => {});
}
private getImage(url: string): Observable<string> {
let xhr = new XMLHttpRequest();
return Observable.create((observer => {
xhr.onreadystatechange =() => {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
observer.next(xhr.response);
} else {
observer.error(xhr.response);
}
observer.complete();
}
}
xhr.responseType = "blob";
xhr.open("GET", url, true);
}))
}
merci monsieur! Je n'ai pas beaucoup utilisé xhr. – quantdaddy