Map () en javascript est-il synchrone?
Fonction est :
[1,2,3].map( function (item)
{
console.log(item);
//return 'something';
});
Mon comportement attendu est que de 1 en sortie, à moins que je décommentez la
//return 'something'
Mais j'ai vraiment
1
2
3
Ce que je fais mal ?
Mise à JOUR:
je suis en train de tester que avec nodejs.
je ne comprends pas.
var async = require("async");
[1,2,3].map( function (item)
{
console.log(item);
//return 'something';
});
async.map([1,2,3], function (item,callback)
{
console.log(item);
//callback(null,true)
}, function (err,result)
{
console.log(result);
}
);
Reviennent tous les deux de la même
1
2
3
Et je tiens vraiment à attendre jusqu'à ce que je obtenir un retour ou un rappel jusqu'à l'élément suivant est exécuté.
RÉSOLU
async.mapSeries([1,2,3], function (item,callback)
{
console.log(item);
//callback(null,true)
}, function (err,result)
{
console.log(result);
}
);
est la façon de le faire.
source d'informationauteur user3815910
Vous devez vous connecter pour publier un commentaire.
Oui, la carte est synchrone.
C'est un ordre supérieur de la fonction, qui prend une nouvelle fonction et l'applique à la matrice.
Certaines personnes pensent que parce qu'ils donnent une fonction en tant que paramètre à
map
alors il "devrait" agir comme un événement en fonction de rappel, mais il n'a vraiment pas. Lemap
fonction s'applique uniquement le paramètre de la fonction de la matrice et seulement après avoir terminé, il poursuit l'exécution de code après la carte de bloc.À votre "comportement attendu' - il est tout simplement ne fonctionne pas comme vous le pensez 😉
"La méthode map() crée un nouveau tableau avec les résultats de l'appel d'une fonction sur chaque élément de ce tableau."
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
La fonction de rappel est appelée pour chaque élément, votre logique est exécutée et la valeur de retour est défini comme un élément dans le nouveau tableau.
Pas clair avec votre comportement attendu,
quelque part dans l'une de vos dernières supprimé post, à l'aide de votre async carte.
essayez ce lien :
http://runnable.com/UyR-6c2DZZ4SmfSh/async-map-example-for-node-js
espère que ça va vous aider.