нет, так работать не будет. попробую обосновать...
итак
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 последней иттерации
|