<p>async.map, но с индексом вроде async.eachOf</p>

Созданный на 23 янв. 2017  ·  8Комментарии  ·  Источник: caolan/async

всем привет

Просматривая документы, я ищу async.map , но с индексом итератора, переданным обратному вызову.
Аналогом async.each является async.eachOf . Но я не вижу async.mapOf или что-то еще.

Что-то подобное существует? Дайте мне знать, если вам понадобится дополнительная информация, спасибо!

Самый полезный комментарий

Мы в порядке 👍 В любом случае, вот что я пытался вернуть данные:

var async = require('async');

async.forEachOf(['a', 'b', 'c'], function () {

  console.log(arguments[1]);
});

Все 8 Комментарий

Привет :) Это то, что вам нужно, похоже на этот ответ - 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 - это именно то, что вам нужно.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги