Async: v3.0 和 eachSeries async/await

创建于 2019-05-25  ·  3评论  ·  资料来源: caolan/async

嘿,

v3.0 还没有为 eachSeries 带来 async/await 支持吗? 是否有完整列表,哪些异步函数现在支持 Promise?

预计此更新:

async.eachSeries(items, async (item, callback) => {
            const itemStats = await someFunc(item);
           callback();
});

目前使用中:

async.eachSeries(items, (item, callback) => {
         (async () => {
            const itemStats = await someFunc(item);
            callback();
          })();
});
question

最有用的评论

使用async / await处理此问题的惯用方法是:

try {
    await async.eachSeries(items, async (item) => {
            const itemStats = await someFunc(item);

            if(!itemStats) throw new Error('no stats found');
    })
} catch (err)  {
   return res.status(500);
}
return res.status(200).json({success: true})

所有3条评论

异步不会将回调传递给async函数。 只需return

async.eachSeries(items, async (item) => {
            const itemStats = await someFunc(item);
});

抱歉,我的问题不是很好。

如果没有回调(),我将无法处理以下错误:

async.eachSeries(items, async (item) => {
            const itemStats = await someFunc(item);

            if(!itemStats) throw new Error('no stats found');

}, (err) => {
       if(err) return res.status(500);

       return res.status(200).json({success: true})
});

如果没有回调,这将不起作用,或者?

使用async / await处理此问题的惯用方法是:

try {
    await async.eachSeries(items, async (item) => {
            const itemStats = await someFunc(item);

            if(!itemStats) throw new Error('no stats found');
    })
} catch (err)  {
   return res.status(500);
}
return res.status(200).json({success: true})

此页面是否有帮助?
0 / 5 - 0 等级