всем привет
Просматривая документы, я ищу async.map
, но с индексом итератора, переданным обратному вызову.
Аналогом async.each
является async.eachOf
. Но я не вижу async.mapOf
или что-то еще.
Что-то подобное существует? Дайте мне знать, если вам понадобится дополнительная информация, спасибо!
Привет :) Это то, что вам нужно, похоже на этот ответ - http://stackoverflow.com/a/31821896 . Возможно, вы можете создать метод псевдонима / копирования, который просто вызывает async.forEachOf
всякий раз, когда вы вызываете async.mapOf
, если вы сочтете это имя более подходящим.
@jpalala, как дела, Джо! позвольте мне попробовать, как дела?
передает ли async.forEachOf
данные в последний обратный вызов, например async.map
?
Мы в порядке 👍 В любом случае, вот что я пытался вернуть данные:
var async = require('async');
async.forEachOf(['a', 'b', 'c'], function () {
console.log(arguments[1]);
});
~ forEachOf
и члены семьи не передают результаты обратному вызову. Если вам нужен ключ, вы можете сделать что-то вроде: ~
async.forEach(_.entries(obj), ( [key, value], next ) => {
// do whatever
}, done);
~ Имейте в виду, что это вернет массив, и порядок не будет гарантирован. Вам придется создать объект результата вручную. ~
РЕДАКТИРОВАТЬ: используйте mapValues
почему не mapValues?
async.mapValues( (val, key, next) => {
// do whatever
}, (err, obj) => {
let result = _.toArray(obj);
});
@ ex1st да, это может сработать!
Да, не обращайте внимания на то, что я сказал, mapValues
- это именно то, что вам нужно.
Самый полезный комментарий
Мы в порядке 👍 В любом случае, вот что я пытался вернуть данные: