Я пытаюсь обвести голову обеими обещаниями и немного потрудиться.Как сделать обещание подождать до конца цикла
Это код:
// For Every row.
var prom = new Promise((resolve, reject) => {
existing_rows.forEach ((item,index) => {
console.log("onto index: " + index);
//We just need to set item[2]!
if (item[1].indexOf('%')===-1) {
//Cool no percentage sign.
translateClient.translate(item[1], 'th')
.then((results) => {
const translation = results[0];
console.log("translation is: " + translation);
item[2] = translation;
});
}
})
resolve("Stuff worked!");
})
prom.then(
(result) => {
//Cool that's finished.
console.log("done!")
console.log(JSON.stringify(existing_rows));
}
)
existing_rows это просто массив я смотрю с некоторыми вещами, чтобы перевести с помощью Google API. Я хочу, чтобы все переводы были помещены в массив existing_rows, прежде чем я запишу его в блок prom.then.
На данный момент выход в следующем порядке:
onto index 0
onto index ..
onto index 8
done!
logs the array without the translations
translation is: ...... x 8
Благодаря
Предлагаем вам использовать 'Promise.all' +' Array # map' вместо 'new Promise' +' Array # forEach' –
И создать новое обещание для каждой «итерации» на карте? –
А я проверю ваш ответ: P –