1
我试图使用forkJoin
执行多个XHR请求(在getImages
函数中),每个请求都包含在可观察对象(在getImage
函数内)中。然而,没有任何请求被执行,即从不执行observer.next()
。我曾尝试使用zip
而不是forkJoin
,但这也不起作用。我确信我可以在我创建的所有观察对象上都有complete
。observable forkjoin永远不会执行可观察的angular2
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);
}))
}
谢谢主席先生!我没有用过很多。 – quantdaddy