<p>async.map, mas com um índice como async.eachOf</p>

Criado em 23 jan. 2017  ·  8Comentários  ·  Fonte: caolan/async

Olá a todos

Olhando os documentos, estou procurando async.map , mas com o índice do iteratário passado para o retorno de chamada.
Com async.each , o análogo é async.eachOf . Mas eu não vejo async.mapOf ou o que não.

Existe uma coisa dessas? Avise-me se precisar de mais informações, obrigado!

Comentários muito úteis

Estamos bem 👍 De qualquer forma, aqui está o que tentei obter os dados de volta:

var async = require('async');

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

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

Todos 8 comentários

Ei :) É o que você precisa semelhante a esta resposta - http://stackoverflow.com/a/31821896 . Talvez você possa criar um método alias / cópia que apenas chame async.forEachOf sempre que você chamar async.mapOf , se achar que esse nome é mais adequado.

@jpalala e

async.forEachOf passa dados para o retorno de chamada final como async.map ?

Estamos bem 👍 De qualquer forma, aqui está o que tentei obter os dados de volta:

var async = require('async');

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

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

~ forEachOf e família não passam os resultados para o callback. Se você quiser a chave, pode fazer algo como: ~

async.forEach(_.entries(obj), ( [key, value], next ) => {
  // do whatever
}, done);

~ Lembre-se de que isso retornará uma matriz e a ordem não será garantida. Você teria que construir um objeto de resultado manualmente. ~

EDITAR: use mapValues

porque não mapValues?

async.mapValues( (val, key, next) => {
    // do whatever
}, (err, obj) => {
    let result = _.toArray(obj);
});

@ ex1st hein isso pode funcionar!

Sim, desconsidere o que eu disse, mapValues é exatamente o que você quer.

Esta página foi útil?
0 / 5 - 0 avaliações