Rafael 🌵
Если ты ожидаешь выполнения сразу нескольких функций параллельно, и только после этого запустить свою, то у тебя есть Promise.all()
Rafael 🌵
Sergey
да и вообще, js однопоточен
параллельности нет, всё на событиях под капотом
Михаил
И снова все приходится делать самому. В javascript завезли критические секции, семафоры, мьютексы или другие типы блокировок?
Евгений
Нет. А что ты блокировать хочешь? У тебя не будет гонки никогда.
Sergey
Igor
https://www.youtube.com/watch?v=8aGhZQkoFbQ
мне помогло разобраться с подобными вопросами
Sergey
Roman
Rafael 🌵
Евгений
Roman
Никаких гарантий по очередности исполнения файберов/коллбэков нет
Igor
Roman
Если что-то модифицировать из разных точек - надо лочить
Rafael 🌵
«Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio / Хабрахабр
https://m.habrahabr.ru/post/192284/
Rafael 🌵
Вот тут пункт "синхронное против асинхронного", шикарной написано по этому вопросу
Roman
Roman
Rafael 🌵
Кмк хорошо написано, что либо синхронность либо асинхронность
Roman
Sergey
Именно.
блокировки в ноде всё уничтожат
Roman
Roman
Смотря что они блокируют и как реализованы
Roman
Sergey
Короч. Есть генераторы и промисы в ноде.
Файберы не нужны!
Vlad
Vlad
ни в одном из твоих ишью не предоставили репро кейс
Vlad
Sergey
Пример хорошего UX: теперь Гитхаб наглядно объясняет пользователям, что разрешает или запрещает лицензия проекта — https://goo.gl/ZxhMnL
Sergey
я вот не могу понять
Sergey
Sergey
Sergey
как разница? кроме названий переменных
Andrey
Там дальше написано
Serhii
В последнем идёт создание нового промиса через фабрику?
Sergey
вот в этих двух кусках кода
Sergey
разницы же нет
Serhii
Именно в этих нет
Rafael 🌵
Sergey
блин копец
можно было также написать
result = result.then(() => promise)
и не **ть мозги
Andrey
Предполагается, что есть. Первый вариант - промис. Второй - функция, возвращающая промис
Serhii
Ну это уже надо сорц фабрики видите
Serhii
А, госпди, эта статья
Sergey
короч, если я хочу executeSequentially, то преобразовывать руками каждый промис в функцию возвращающую промис это как минимум тупо
Sergey
намного лучше сделать всё прозрачно
кинул массив, и функция сама сделает внутри что нужно
result = result.then(() => promise)
Sergey
статья отстой
Sergey
krn
мне тоже не нравится, как выкручиваетесь в таких случаях? доп переменная ?
Serhii
Зачем
Sergey
выносить в функцию...
Sergey
но стараюсь проектировать так, чтобы такой фигни не было
Serhii
Serhii
Промисы созданы чтобы не делать ступеньки калбеков , автор в примере все равно их делает
Sergey
getUserByName('noname')
.then(user => getUserByAccountId(user.id))
.then(userAccount => console.log(userAccount))
Serhii
+
andrei
Sergey
единственный момент, это если мне нужен результат и getUserByName и getUserByAccountId
andrei
А не)
krn
Serhii
Serhii
Но если нужно кумулировать все выводы со всех промисов тогда да - нужна переменная
Serhii
Если в последнем нужно ответ и первого и второго и тд
Nikolay
Можно и без переменной.
Sergey
как ж
Serhii
Жги
Serhii
Дополнительный зен чтобы модифицировать вывод ы
Nikolay
getFirst().then(first => Promise.all([first, getSecond(first)])).then(([first, second]) => ...)
Nikolay
Тоже коряво, но тем не менее :)
Serhii
Такое
Sergey
почти то, что я предложил, только c All