await не является зарезервированным словом

#javascript #node.js #ecmascript-6 #async-await

#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. Какая версия на Node.js вы работаете?

Ответ №1:

Вы не можете выполнить синхронизацию 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);
        }));