return await - избыточная конструкция, достаточно return
чтоб зарежектить результат async function достаточно throw
так же если не перехватить reject из await - это равносильно throw
throw внутри таймаута сработает на другом потоке исполнения (другой итерации event-loop) и следовательно вывалится в общий трэйс, try-catch его не перехватит
bernex: async function еще до исполнения своего кода возвращает Promise, а сам код исполняется по nextTick, аналогично Promise.resolve().then(function() { /* как тут */ });
Для .map .forEach и lodash этого будет достаточно, чтоб запустить следующую итерацию, следовательно асинхронный код будет выполнятся параллельно (точнее, при первой возможности)
Umid: можно, но сложно и зачастую не нужно. В принципе, все что есть на npm так или иначе написано на ванильном апи, но почему бы не пользоваться тем, что уже сделали другие?
Александр +: открытие инструментов разработчика можно отследить на js, установить расширение в хром можно с сайта не запрашивая разрешения (у хрома есть даже issue на эту уязвимость, но гуглу до лампочки), авито этим пользуется, устанавливает расширение хрома, которые полностью блокирует как инструменты разработчика, так и управление расширениями...
Вывод у меня один, боятся опозориться своим говнокодом, а он у них действительно такой
Александр +: попробуйте открыть инструменты разработчика хром на их сайте, они так пекутся за свой говнокод, что сажают вирус в расширения хрома, хотя может что и изменилось сейчас, у меня уже с полгода авито в черном списке