Chaine de promise et synchronisation
Bonjour à tous,
J'ai 3 fonctions différentes (f1,f2 et f3) qui me renvoie chacune une promise.
j'aurrais besoin du resultat de f1 dans f2 puis du résultat de f2 dans f3 avec des fonction de traitement à chaque fois. J'ai essayé dans une fonction f4 de faire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
var f4=function(){
f1.then(function(dataf1){
f2.then(function(dataf2){
f3.then(function(dataf3){
$scope.contenuedataf2=dataf2;
traitement(dataf1,dataf2,dataf3); // iici il bug il me dit que dataf2 "is undefine" alors que $scope?contenuedataf2 s'affiche
// et contient ce qu'il faut
},function(dataf3){
})
},function(dataf2){})
},function(dataf1){
console.log("f1 echec") |
une autre solution aurrait pu etre d'utiliser $q.all et de récupérer le retour de mes 3 fonctions puis d'effectuer le traitement ensuite
j'ai fait
Code:
1 2 3 4 5 6 7 8 9 10
| $q.all(f1,f2,f3).then(
function(TableOfAllData){
console.log("Dans success recup All");
$scope.tableau=TableOfAllData;
},
function(TableOfAllData){
console.log("echec success All"+TableOfAllData);
$scope.present=TableOfAllData;
}
) |
le code ci dessous m'affiche Dans success recup All dans la console
mais $scope.tableau est vide ce qui n'est pas normal
et je n'ai jamais eu de echec success All mais j'ai l'impression que sa ne fonctionne pas
j'ai bien ajouté $q dans les dépendance de mon controlleur
et "prise individuellement" elle renvoie bien un résultat correct
Merci d'avoir pris le temps de me lire
Votre aide est la bienvenue