如何在Node.js中使用异步映射系列?

数量

我正在使用异步映射系列来操纵数组。

exports.MultiChannelInvoke = async function (bulkUploadArray) {
  async.mapSeries(bulkUploadArray, async function (array, cb) {
    let ap = array[0]
    let apArray = ['PL', 'A', 'J', 'V', 'I'];

    if (!apArray.includes(ap)) {  // For Array's first value it is KL & it is getting inside this loop
      //some manipulation
    }
    else {
      //some manipulation
    }
  }, (err, results) => {
    if (err) {
      masterResult = { message: 'Failed During async Map', errorMessage: err }

    } else {
      let mongoData = batch;
      uploadsummary.create(mongoData)
      masterResult = { FinalResults: results }

    }
  })

  return masterResult
}

我的bulkupload Array将如下所示:

[
  [
    "KL",
    {
      "ms": "2147766904",
      "desc": "APP-LIC JEEVAN POLICY,7878787878,30/01/19",
      "ur": "DNDSER6911744",
      "tap": "TA",
      "tapupdate": [ "Array" ]
    }
  ],
  [
    'PL',
    {
      ms: '3147766904',
      desc: 'APP-LIC JEEVAN POLICY,9916957781,30/01/19',
      ur: 'DNDSER6911745',
      tap: 'TA',
      tapupdate: [ Array ]
    }
  ]
]

因此,根据我的bulkupload数组,第一个值是KL&它进入第一个if循环(我在代码的注释中已经提到)。因此,进入内部并进行操作后,就不会考虑第二个数组值了。完成对第一个值的操作后,它将直接返回结果。有人可以告诉我我在做什么错吗?还是不应该使用异步映射系列。请给我建议。

阿里特拉·查克拉博蒂(Aritra Chakraborty)

首先,在async-await处理完所有内容后,制作函数不会自动返回值。return masterResult将在async.mapSeries您需要作出承诺并返回之前执行

另外,如果async-await在内部使用,则async.js需要从异步函数返回数据以将其视为结果。

这是一个结合了我上面所说的版本:

const MultiChannelInvoke = function (bulkUploadArray) {
  return new Promise((res, rej) => { //make promise
    async.mapSeries(bulkUploadArray, async function (array) { //no cb required
      let ap = array[0]
      let apArray = ['PL', 'A', 'J', 'V', 'I'];

      if (!apArray.includes(ap)) {  // For Array's first value it is KL & it is getting inside this loop
        return 'IF!'
      }
      else {
        return 'ELSE';
      }
    }, (err, results) => {
      if (err) {
        rej({ message: 'Failed During async Map', errorMessage: err }); //reject
      } else {
        res(results); //resolve
      }
    })
  })
}


MultiChannelInvoke([['KL',
  {
    ms: '2147766904',
    desc: 'APP-LIC JEEVAN POLICY,7878787878,30/01/19',
    ur: 'DNDSER6911744',
    tap: 'TA',
    tapupdate: [Array]
  }],
['PL',
  {
    ms: '3147766904',
    desc: 'APP-LIC JEEVAN POLICY,9916957781,30/01/19',
    ur: 'DNDSER6911745',
    tap: 'TA',
    tapupdate: [Array]
  }]]).then(console.dir);

输出:
[ 'IF!', 'ELSE' ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在异步 Node.JS 中使用 MySQL

来自分类Dev

如何在Node JS中使用嵌套映射

来自分类Dev

如何在node.js中使此功能异步

来自分类Dev

如何在Node.js中使用crypto.randomBytes使用异步/等待?

来自分类常见问题

Node.js 7如何在异步/等待中使用序列化事务?

来自分类Dev

如何在Node.js中使用异步瀑布进行API调用

来自分类Dev

如何在node-pdfkit中使用异步功能?

来自分类Dev

如何在node-pdfkit中使用异步功能?

来自分类Dev

如何在javascript或node中使其异步?

来自分类Dev

如何在javascript或node中使其异步?

来自分类Dev

在node.js中使用异步瀑布

来自分类Dev

在node.js中使用异步模块

来自分类Dev

在node.js中使用异步模块

来自分类Dev

如何在Node.js中执行一系列同步和异步功能

来自分类Dev

如何在Nuxt.js中使用异步等待?

来自分类Dev

如何在node.js中使用ecma6(打字稿)解析映射到json

来自分类Dev

如何在Node.js中使用XHR API?

来自分类Dev

如何在HTML中使用node.js库?

来自分类Dev

如何在sails.js中使用node-inspector?

来自分类Dev

node.js:如何在koa中使用护照

来自分类Dev

如何在Node.js中使用Swig输出JSON

来自分类Dev

如何在Node JS中使用事件?

来自分类Dev

如何在node.js中使用marklogic查询结果

来自分类Dev

如何在PyCharm中使用Intellij Node.js插件?

来自分类Dev

如何在Node.JS中使用SQL

来自分类Dev

如何在node.js中使用token(post)Mysql?

来自分类Dev

如何在Node.js中使用useMasterKey进行解析?

来自分类Dev

如何在node.js中使用window.sessionstorage

来自分类Dev

如何在Node.js中使用OpenVPN?