等待不是保留字

时间:2019-03-13 09:46:55

标签: javascript node.js ecmascript-6 async-await

这是我的代码,

exports.prepareMeshTerms = function(req,res) {
var input = req.body,
start = input.start,
limit = input.limit,
count = 0,
pipeData = '';
MeshTerms.find().skip(start).limit(limit).exec(function (err, data) {
    if(err) {
        throw err;
    }
    if (data) {
        (async function(){
            data.map(element => {
                var string = element.Intervention.replace("|"," "),
                payload = { json: { input: element.Intervention } };
                await execute(payload,count,pipeData,element);
            });

        })();
    }
});};

它说await不是保留的关键字。在这里我在自调用函数中保持异步,但仍然会引发错误。有人可以建议我帮忙。谢谢

1 个答案:

答案 0 :(得分:3)

您无法在内部map进行同步await。而是使用Promise.all创建map的异步函数:

        await Promise.all(data.map(async (element) => {
            var string = element.Intervention.replace("|"," "),
            payload = { json: { input: element.Intervention } };
            await execute(payload,count,pipeData,element);
        }));