A voir également:
- JS Attendre la callback avant de retourner le résultat d'une fct
- Retourner ecran windows - Guide
- Comment retourner une video - Guide
- Lexer resultat - Télécharger - Sport
- Retrouver mon compte copains d'avant - Forum Réseaux sociaux
- Perte de mes anciens accès pour Copain D'Avant - Forum Réseaux sociaux
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
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
525
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