2
фрагменты кода:Модуль NodeJS Async: как получить объект результатов в обратном вызове?
var async = require("async");
async.map([
"a",
"b",
"c"
], function(thing, callback) {
console.log(thing + "-something");
callback();
},
function(err, results){
if (err) return console.error(err);
console.log(results);
});
Мои текущие результаты:
a-something
b-something
c-something
[ undefined, undefined, undefined ]
Мои желаемые результаты:
[ a-something, b-something, c-something ]
Не могли бы вы, ребята, скажите мне, что я получаю неправильно? Как получить доступ к объекту результатов в обратном вызове?
Это работает! Спасибо, Олег. Я хотел беспокоить вас еще одним вопросом: я новичок в javascript и узле, и я считаю, что документация должна быть прочитана. Почему callback() также работает в отсутствии любого передаваемого аргумента. Не могли бы вы ссылаться на документацию, которая показывает обратный вызов (null, returnValue) – samol
@SidneySidaZhang: Это раздел документов, на которые вы должны посмотреть: https : //github.com/caolan/async#maparr-iterator-callback. Причина callback() также работает, потому что JavaScript не является строгим с количеством параметров, переданных функции (любые параметры, которые не переданы, рассматриваются как 'undefined'). Асинхронная библиотека следует примеру и выбирает, чтобы быть расслабленной, требуя параметров, поэтому, если вы ничего не пропускаете, она предполагает, что нет ошибки, и, как вы видели, проходит неопределенный до последнего обратного вызова. –
отличное спасибо! – samol