@dovid אמר בasync ב - forEach:
אל תשתמש עם forEach.
תעשה map שמחזיר עבור כל שורה async של העדכון, משהו כזה:
var tasks = rows.map(async function(row){
return await updateRow(row);
});
אחרי זה תמתין לסיום כולם ע"י Promise.all:
Promise.all(tasks).then(function(newlist){
//החזרה ללקוח
console.log(newlist) ;
});
נסיתי לחקות את ההמתנה לשרת ע"י setTimeOut כך
var tasks = [1,2,3].map(async function(row){
return await setTimeout(() => row*2, Math.random() )
});
Promise.all(tasks).then(function(newlist){
console.log(newlist) ;
});
אבל זה גם מחזיר מספרים לא נכונים וגם המספרים שחוזרים מצטברים וגדלים בכל הרצה.
מה לא נכון?