A voir également:
- JS Attendre la callback avant de retourner le résultat d'une fct
- Retourner ecran windows - Guide
- Dans cette présentation, sarah avait encadré directement le titre de certaines diapositives avant d'automatiser cette mise en forme pour tout le document. sur quelles diapositives avait-elle encadré directement le titre ? ✓ - Forum Bureautique
- Présentation d'une diapositive - Forum Bureautique
- Instagram erreur veuillez patienter quelques minutes avant de réessayer ✓ - Forum Instagram
- Round js ✓ - Forum Javascript
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
546
Modifié par Pitet le 17/08/2016 à 16:59
Modifié par Pitet le 17/08/2016 à 16:59
Effectivement la "bonne manière" pour récupérer le résultat est d'appeler une autre fonction de callback qui sera passée en paramètre de ta première fonction, par exemple comme ceci :
Dans ce cas, l'appel à ta fonction ne se fait pas comme ceci :
mais comme ceci :
Source : https://stackoverflow.com/questions/5010288/how-to-make-a-function-wait-until-a-callback-has-been-called-using-node-js
Une autre solution qui semble correspondre exactement à ton problème en utilisant les "promises" : https://stackoverflow.com/questions/26566535/nodejs-solrclient-how-to-wait-for-response
function updateMessage(input, response, callback) {
response.output.text = "ceci est une mauvaise réponse";
if(!cond1){
return response;
} else {
query.q(input.input.text);
solrClient.search(query, function(err, searchResponse) {
if(err) {
console.log('Error searching for documents: ' + err);
} else {
console.log('Found ' + searchResponse.response.numFound + ' documents.');
response.output.text('First document: ' + JSON.stringify(searchResponse.response.docs[0], null, 2));
}
callback(response);
});
}
}
Dans ce cas, l'appel à ta fonction ne se fait pas comme ceci :
var returnResponse = updateMessage(input, response);
mais comme ceci :
updateMessage(input, response, function(resturnResponse) {
// on peut utiliser ici la retour de la recherche : returnResponse
});
Source : https://stackoverflow.com/questions/5010288/how-to-make-a-function-wait-until-a-callback-has-been-called-using-node-js
Une autre solution qui semble correspondre exactement à ton problème en utilisant les "promises" : https://stackoverflow.com/questions/26566535/nodejs-solrclient-how-to-wait-for-response
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
546
17 août 2016 à 16:34
17 août 2016 à 16:34
Salut,
Et en déplancant le "return response;" à la fin de la fonction de callback ?
Bonne journée,
Et en déplancant le "return response;" à la fin de la fonction de callback ?
Bonne journée,
17 août 2016 à 17:26