funzione è:È map() in javascript sincrono?
[1,2,3].map(function (item)
{
console.log(item);
//return 'something';
});
mio comportamento previsto è sempre solo 1 come uscita, a meno che io rimuovere il commento le
//return 'something'
Ma, proprio mi piace
1
2
3
Che cosa sto facendo di sbagliato?
UPDATE:
Sto verificando che con nodejs.
davvero non capisco.
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);
}
);
Entrambi restituiscono lo stesso
1
2
3
E mi piacerebbe davvero aspettare fino a ottenere un ritorno o una richiamata fino alla voce successiva viene eseguita.
risolto
async.mapSeries([1,2,3], function (item,callback)
{
console.log(item);
//callback(null,true)
}, function (err,result)
{
console.log(result);
}
);
è il modo per farlo.
Perché è che il "comportamento previsto"? – Alnitak
Quale browser stai provando?per Google Chrome sto ottenendo il risultato come previsto in entrambi i casi. – robieee
Nota: mappa chiama una funzione di callback fornita una volta per ciascun elemento in una matrice. Questo è quello che ho ottenuto in Google Chrome debugger: [1,2,3] .map (function (item) { console.log (voce); // ritorno 'qualcosa'; }) 1 VM63: 4 2 VM63: 4 3 VM63: 4 [indefinito, indefinito, indefinito] [1,2,3] .map (funzione (elemento) { console.log (voce); ritorno ' qualcosa '; }) 1 VM66: 4 2 VM66: 4 3 VM66: 4 [ "qualcosa", "qualcosa", "qualcosa"] – robieee