Есть удобная конструкция в jquery
$.when(d1,d2,d3).then( done, fail);
Удобно создавать и резолвить deferred объекты
d1 = $.Deffered();
d1.resolve(mydata);
1) А как это делать без jquery, на нативном es6, и так же, в две строчки?
2) У меня рендерятся поля. Их может быть очень много. Сильно ли скажется на производительности, если каждый из этих полей будет иметь свойство-объект с deferred? Отложенное свойство мне нужно для отслеживания рендеринга полей на странице. Я использую рендер полей пачками по 30 через setTimeout.
3) Можно ли, отказаться от setTimeout(func,0) в сторону чего-то более быстрого? (в моем случае, рендер 1 поля занимает 1,9-2,4 мс, а время ожидания между циклами setTimeout(func,0) - 25-30ms, что очень критично. Поэтому и ренедрю пачками по 30 штук. -- получается (1,9...2,4)*30 ~ 60-70ms + 25-30ms делэй от таймера.