Je travaille avec Angular2 et une API de repos nodejs. Je dois faire une ou plusieurs requêtes http pour une même tâche, donc j'utilise Observable.forkJoin() pour attendre que tout se termine. Je mappe le résultat avec la méthode d'analyse json, puis je m'abonne à ce résultat mais Je ne peux pas obtenir les propriétés json du résultat comme je le faisais auparavant.Je ne peux pas gérer les fichiers json retournés par Observable.forkJoin()
Ma méthode de service renvoie la Observable.forkJoin() lui-même:
public rename(file:MyFile, newName:string){
let requests = new Array();
for(let i=0; i<file.sources.length; i++){
let url:string = this.serverUrl;
if(src.name === "src1"){
url += "rename/src1";
} else if (src.name === "src2"){
url += "rename/src2";
}
requests[i] = this.http.get(url)
.map((res:Response) => res.json())
.catch(this.handleError);
}
return Observable.forkJoin(requests);
}
Je souscris dans une autre méthode ailleurs:
this.api.rename(this.selectedFile, newFileName).subscribe(
rep => {
// The editor tells me "Property 'name' doesn't exist on type '{}'."
console.log(rep[0].name);
},
err => { console.error(err); }
);
Le serveur répondre correctement avec les données que j'ai demandé . Le rep [0] est correctement défini, il ressemble à ceci:
Object {name: "res.png", id: "HyrBvB6H-", size: 0, type: "", isShared: false…}
Je suppose que c'est un problème de frappe. Habituellement, avec une requête http.get simple, il retourne un objet 'any'. Ici, il retourne un objet '[] {}'. res[0]
est un objet '{}' et je ne peux pas obtenir les propriétés json dessus. Est-ce que j'utilise correctement Observer.forkJoin() correctement? Est-ce que je manque quelque chose?
Merci à l'avance pour l'aide :)
Que faire si vous faites 'new Array();'? –
jonrsharpe