#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);
}));