Anonymous
а мне нужно thread 1
Anonymous
1 2 3 Thread 2
Вадим
Ну) так он устроен, значит нужно как-то изменить структуру приложение
Вадим
я изначально не правильно понял вопрос
Anonymous
я изначально не правильно понял вопрос
зада состоит в том чтобы выводило так как вызывается при этом чтобы асинхронная функция не давала выполнится оператору ниже и выводила свой результат
Anonymous
то есть сделать из асинхронной синхронную
Anonymous
Последовательное выполнение можно рекурсией сделать
нужно именно чтобы была асинхронная функция смысл в этом изменить стэк выполнения кода
Вадим
Если возникла такая задача
Anonymous
Возможно имеет смысл выбрать другие яп
Значить на Node js нельзя делать бэк энд не подходить он для этого никак
Игорь
Игорь
Конкретно в твоём примере
Вадим
Ну делаются же)
Igor
Можешь асинк эвейт заюзать
Игорь
И неважно 1000 мс или 0, это будет новая задача и она выполнится после выполнения текущей, то есть уже после step 2
Anonymous
Короче напишу проще чтобы вам было понятнее, нужно выполнить функцию (она себе там что то выполняет) и дальше идти нельзя пока функция не выполнит все (функция асинхронная ) а все это выполняется в основном потоке
Anonymous
То есть Step 0 (ждем пока асинхронная функция выполнит свое тело вернет Step 1) потом выполним код ниже Step 2
Anonymous
и все это без await потому что его нельзя использовать без async
MaxGraey
и все это без await потому что его нельзя использовать без async
Похоже ты хочешь начертить 8 строго перпендикулярных линий на плоскости, две из которых красные а остальные прозрачные=) Я думаю все это смотрели. У тебя уже есть одна функция с async. Почему ты не можешь сделать ту что во внешнем скоупе тоже асинхронной и т д далее вплоть до самой корневой если понадобиться? Кажется я начинаю понимать твою проблему)
Igor
https://codesandbox.io/s/xenodochial-brook-npuku Оно?
Игорь
То есть Step 0 (ждем пока асинхронная функция выполнит свое тело вернет Step 1) потом выполним код ниже Step 2
Делай функцию со step 1 синхронной. А если асинхронная, тогда навешивай .then(), потому что асинхронная функция возвращает промис.
Вадим
Дело в том, что все то, что в основном потоке всеравно произойдет первее чем дело дойдет до выполнения асинхронных функций
Вадим
Ему нужен эффект как от alert, когда вызов этой функции блокирует абсолютно всё
Anonymous
Чем тебе асинк не угодил?
так если сделать обертку тоже не работает даже через await понимаешь ?
Вадим
async await, промисы это все не блокирующая тема, а как писать блокирующий код, подобно alert или readFileSync и прочее с окончанием Sync я хз
Вадим
Задача стоит в остановке главного потока
Anonymous
https://codesandbox.io/s/mystifying-curie-lcip9
Во, да спасибо так работает
Вадим
о_О
Igor
о_О
magic 🧚‍♀️
Anonymous
для меня да, я просто мозг сломал и то не понял как оно, для меня как для новичка это не то что магия и пи** какой то
Anonymous
как это все выучить и понимать
Вадим
magic 🧚‍♀️
я то думал нужно реализовать функцию, как readFileSync, которая вообще всё блочит
MaxGraey
Во, да спасибо так работает
Ну а теперь перепиши это на (async function () { await foo(1); await foo(2); await foo(3); })();
Anonymous
на С++ легче фронт делать чем на JS Бэк
MaxGraey
на С++ легче фронт делать чем на JS Бэк
синдром адаптации. Просто разные парадигмы очень (я про асинхронное программирование)
Anonymous
Ну да, например мне с базы нужно вытянуть кое что и тут же сразу его обработать
Anonymous
как это сделать когда одно в одном колбэеке другое еще в одном а третье в основном потоке
Igor
Ну да, например мне с базы нужно вытянуть кое что и тут же сразу его обработать
Это далеко не главные проблемы на Node.js , все еще впереди)
MaxGraey
Можно еще так: (async function () { await Promise.all([ foo(1), foo(2), foo(3) ]); console.log('last'); })(); Тогда foo(1), foo(2) и foo(3) будут выполняться конкуррентно (читай одновременно), дожидаться пока все промисы зарезолвятся (закончаться) а потом только будет вызван console.log('last')
Вадим
Это далеко не главные проблемы на Node.js , все еще впереди)
А какие еще проблемы на ноде? Я слышал что-то про утечку памяти и тд, но в подробности не влазил
Igor
А какие еще проблемы на ноде? Я слышал что-то про утечку памяти и тд, но в подробности не влазил
Отсутствие фреймворков вменяемых. Каждый проект это сборка из говна и палок (сторонних модулей)
Anonymous
Отсутствие фреймворков вменяемых. Каждый проект это сборка из говна и палок (сторонних модулей)
именно поэтому я собрал servercore.js.org чтобы сократить время сборки говна и палок
MaxGraey
Beginer Не слушай никого, есть уже вменяемые фреймворки. Тот же Nest например: https://github.com/nestjs/nest
Igor
именно поэтому я собрал servercore.js.org чтобы сократить время сборки говна и палок
Ну там ниче нет из того чтобы мне например понадобилось)
MaxGraey
Перфоманс говно.
Бенчмарки в студию
Igor
Бенчмарки в студию
Возьми и затести
Anonymous
не нашёл своего - добавь, с радостью приму пулл запрос)
Anonymous
если что то нужное
Вадим
Ну как бы это считается нормальным в кругах ноды
MaxGraey
Возьми и затести
Ты хотя бы это пробовал? https://docs.nestjs.com/techniques/performance
Igor
Я думаю это +1 странность данной платформы
Ну эта основная, другие можно просто как фичи воспринимать. Думаю на синьйор левеле можно плюсы везде извлекать.
Igor
Ты хотя бы это пробовал? https://docs.nestjs.com/techniques/performance
На сайте вендора фреймворка 🤦‍♀️
Anonymous
Ну там ниче нет из того чтобы мне например понадобилось)
а чего не хватает если не секрет? что добавить?
Igor
Затести, сам, потом расскажешь
Igor
а чего не хватает если не секрет? что добавить?
Сессии из коробки + реляционки, логгирование
Igor
возможность создавать модели, миграции делать
Anonymous
возможность создавать модели, миграции делать
модели есть, миграции можно замутить
Anonymous
пойду to-do пополнять
MaxGraey
На сайте вендора фреймворка 🤦‍♀️
https://github.com/nestjs/nest/blob/master/benchmarks/all_output.txt Вот результаты бенча. Ну и?
MaxGraey
nest Requests/sec: 9093.64 nest-fastify Requests/sec: 17233.87 express Requests/sec: 10444.24
MaxGraey
А теперь давай свои пруфы, что nest медленный
Anonymous
Добрый день! Какие есть веб-студии по заказам под ключ? Дайте не самые распиаренные :)
Anonymous
Если не хотите тут кого-то "рекламировать", то, пожалуйста, не стесняйтесь писать в личку
Anonymous
Зачем тебе это?
Интересно, стало. Что это за магия JS-са такая
Свидетель
и никак нельзя сделать чтобы она выполнилась раньше Step 2 ?
Асинхронная на то и асинхронная, что не загружает основной поток. Если хочешь, чтобы что-то происходило только по окончанию асинхронной, закидывай в .then().