Показать сообщение отдельно
  #7 (permalink)  
Старый 04.08.2021, 19:29
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

нет, так работать не будет. попробую обосновать...
итак
1 декларация let promise = device.getNATList(elem);
мы не только получили промис но и частично выполнили функцию.
например в ее начале был код this.ip = elem.ip.
2 await то он await. выполнение функции getNATList отложено, но не отложено выполнение цикла. поэтому цикл продолжает работать
3 есть один await с this.ip = elem.ip идем на вторую иттерацию....
а в ней создаем опять промис и опять меняем this.ip. И нетудно заметить, что это один и тот же объект
и так проходим весь цикл.
в конце цикла this.ip = elem.ip последнего элемента.
и затем управление побежало дальше пока не попало в ядро.
а там нужно выполнять три авайта и у каждого из них
this.ip равено одному и тому же значению - elem.ip последней иттерации
Ответить с цитированием