Size: a a a

JavaScript — русскоговорящее сообщество

2021 April 19

MK

Maxim Koylo in JavaScript — русскоговорящее сообщество
тебе надо всего лишь сделать так .then(openModal)
источник

TO

Tony Osipenko in JavaScript — русскоговорящее сообщество
источник

TO

Tony Osipenko in JavaScript — русскоговорящее сообщество
это кнопка, которая находится на каждой карточку, для более детальной информации.
источник

TO

Tony Osipenko in JavaScript — русскоговорящее сообщество
включил в браузере режим медленного инета, чтобы дольше ждать ответ от сервака и он мне присылает пустой лист кнопочек
источник

TO

Tony Osipenko in JavaScript — русскоговорящее сообщество
убрал режим медленного инета. Мне код как решить это не нужно, мне б просто понять идею, почему так выполняется код
источник

А

Алекс in JavaScript — русскоговорящее сообщество
Подскажите плиз почему не дожидается выполнения async/await же стоит
то есть сразу отдает resAll и скрипт дальше выполняется
если точнее, то все что внутри анонимной функции просто не успевает отработать, в итоге объект resAll полупустой
.then(resAll => {
   return Categories.findAll().then(categories => {
       categories.forEach(category => {
           if (category.parent_id == 0) {
               resAll.map['/manual/' + category.link] = ['get'];
               resAll.route['/manual/' + category.link] = {
                   lastmod: currentDate,
                   changefreq: 'daily',
                   priority: 0.5,
               };
           } else {
               (async function() {
                   await Pages.findByCategoryId(category.id)
                       .then(subcat => {
                           if (subcat) {
                               subcat.forEach(row => {
                                   resAll.map[`/manual/${category.child_link}${row.link}`] = ['get'];
                                   resAll.route[`/manual/${category.child_link}${row.link}`] = {
                                       lastmod: currentDate,
                                       changefreq: 'daily',
                                       priority: 0.5,
                                   };
                               });
                           }
                       })
                       .catch(err => console.log(err));
               })();
           }
       });

       return resAll;
   });
}).then(
источник

В

Вика in JavaScript — русскоговорящее сообщество
categories => { не асинхронная же
источник

А

Алекс in JavaScript — русскоговорящее сообщество
и? вопрос в том почему асинхронную функцию не дожидается
источник

НВ

Никита Вьюшков... in JavaScript — русскоговорящее сообщество
ну здесь нечему ждать завершения forEach/map
они запускаются и выполнение идет дальше.

в целом конечно не надо так код сюда кидать, это страшно )
источник

В

Вика in JavaScript — русскоговорящее сообщество
как тогда оно сможет дождаться выполнения анонимной функции
источник

А

Алекс in JavaScript — русскоговорящее сообщество
ну async/await нам гарантирует же что дождется выполнения запроса, только вот он не ждет
источник

В

Вика in JavaScript — русскоговорящее сообщество
так саму анонимную функцию ничего не ждет
источник

А

Алекс in JavaScript — русскоговорящее сообщество
чет я не догоняю ) кто ждать то должен? она же внутри промиса еще одного
источник

НВ

Никита Вьюшков... in JavaScript — русскоговорящее сообщество
вместо forEach попробйте использовать for ()
где в теле уже будете await нужных операций и так далее по цепочке

можно погуглить что-то типа "orEach loop does not work in promise or async function"
источник

В

Вика in JavaScript — русскоговорящее сообщество
categories.forEach(async (category) => {
источник

В

Вика in JavaScript — русскоговорящее сообщество
и убрать саму функцию, оставив await и так далее
источник

В

Вика in JavaScript — русскоговорящее сообщество
а ответ выше получше
источник

А

Алекс in JavaScript — русскоговорящее сообщество
🤔я так пробовал тоже, до этого.. по моему это шило на мыло, не?
или тут получается что каждая итерация foreach async дожидается запроса?
источник

В

Вика in JavaScript — русскоговорящее сообщество
если именно так пробовал, то лучше переписать на цикл for
источник

А

Алекс in JavaScript — русскоговорящее сообщество
а почему? в чем разница?
источник