Алексей
ааа, как же меня радует асинхронность javascripta :)))
Алексей
const getOutput = async (elem) => { await bot.sendMessage(chatId, elem.date); await bot.sendMessage(chatId, elem.title); }
Алексей
я же правильно понимаю, что сначала первая функция должна выполниться, а вторая должна запуститься, когда первая выполнится?
сomorsiс
да
Алексей
перебираю массив объектов, для каждого объекта применяю данную функцию...
Sergey
как перебираешь
Алексей
...т.е. должен получиться такой вывод: дата название дата название дата название и т.д
Sergey
не обязательно
Sergey
делаешь там await getOutput( ?
Алексей
неа
Sergey
а надо
сomorsiс
forEach
замени на обычный фор и await-ов
Алексей
а надо
а async перед forEach ставить что-ли? :)
сomorsiс
либо есть вариант сделать через reduce с промисами
Sergey
только for (of/in)
Алексей
такая же фигня...вывод вот так: дата дата название название
Алексей
какие еще версии? :)
Анатолий
только for (of/in)
Вот этот вариант используй
Анатолий
Да и вообще по сути зачем тебе ждать именно очереди? пусть себе одновременно и выполняются, главное что у тебя внутренние сообщение точно в порядке будут выполняться
Анатолий
Это ж быстрей будет
Alexander
Какой encoding вы имеете ввиду ?)
у меня респонс в windows-1251 приходит.
Nikolay
Это ж быстрей будет
Ага, и еще обработку ошибок добавить, и все это на асинках 😁 а потом код скинь почитать
Алексей
пффф, жесть какая то :))
Анатолий
А что такого в обработке ошибок?
Анатолий
records.forEach((item: IVideoStatus) => { doSingleJob(item) .then(() => { }) .catch((error) => { }); }); Внезапно с обработкой ошибок, а внутри doSingleJob спокойно используем асинки
Анатолий
И выполняются одновременно все таски, а внутри каждой все действия выполняются поочереди
Nikolay
Не, ну это грамотно. Часто начинают лапшу на асинках городить.
Nikolay
Декомпозиция наше всё.
Nikolay
Потом появляются вложенные трай-кетчи и т.д. :))
Анатолий
😃 я использую вложеные трей-кетч, но это уже другая история
Nikolay
Хотя и не такой адовый ад, как вложенные тернарники :))
Анатолий
Для разпределения ошибок, не обязательно пользователю знать что у меня отвалилась бд, или запрос к апи сбоит, такие ошибки я отлавливаю отдельно, логирую и заменяю текст на человекочитаемый, и обязательно есть внешний трай который в принципе ловит ошибки, включая мои замененные
Анатолий
по сути вложеный трай
Nikolay
Ну я о том, что в принципе любые вложенные блоки диковато смотрятся. Если на функции разносить, то наверное норм.
Анатолий
Ну вообще да, диковато
Алексей
народ я так и не допонял, чего делать то? :)
Анатолий
оставляй как есть
Анатолий
Это нормальное поведение
Vladimir
народ я так и не допонял, чего делать то? :)
можно сделать через reduce, чейнить промисы. Но будет выглядеть стрёмно
Анатолий
Анлес тебе кровь из носа нужно чтоб все ОБЯЗАТЕЛЬНО выполнялись строго друг за другом
Алексей
какое нормальное то???
Анатолий
у тебя все пары выполняются одновременно, но внутри каждая пара выполняется строго друг за другом
Anonymous
у меня респонс в windows-1251 приходит.
Axios такой функциональности не имеет, но в можете получить ответ типа Buffer и потом например с помощью iconv конвертировать в любую кодировку
Алексей
мне нужно чтобы сообщения из объекта выводились в определенной последовательности
Анатолий
куда выводились, это лог просто?
Анатолий
Или это для пользователей?
Анатолий
Используй фор
Анатолий
И будет тебе счастье
Алексей
у меня в массив объекты, каждый объект это расписание мероприятия (дата, название, ведущий и т.д.)
Алексей
я сортирую мероприятия по городу и вывожу список мероприятий
Алексей
ну это все подробности
Анатолий
а асинк зачем?
Алексей
https://pastebin.com/0wvNV8Yu
Алексей
вот выдержки из кода
Алексей
а асинк зачем?
ну как зачем то? есть функция, которая выводит значения определенных полей объекта в определенной последовательности
Анатолий
for ( item of array) { await (item) => await getOutput(item) };
Анатолий
и дальше вглубь всем авейт
сomorsiс
resp.reduce((promise, element) => promise.then(() => getOutput(element)), Promise.resolve())
Алексей
я перебираю массив из этих объектов и каждый объект как аргумент в функцию
Анатолий
да
Анатолий
for ( item of array) { await getOutput(item) };
Анатолий
опечатка была
Anonymous
keystone для админки, есть альтернативы?
Anonymous
С учетом что на фронте реакт хотелось бы
Cenator 🐈
antd pro
Anonymous
Много чего на китайском... А там бекенд тоже есть?
Cenator 🐈
а, понял, это другой чат)
Eugene
Всем привет Прикручиваю ЛДАП к перьям, натолкнулся на ошибку Authentication strategy 'ldap' is not registered.где ее регистрировать? Спасибо
Eugene
нашел жсон конфиг, с локальной стратегией, возможно туда, но не ясно, что нужно писать, примеров не нашел
Alexander
А для авторизаций что используют чаще всего? Passport? Пока его начал изучать, но может есть ещё варианты.
Дмитрий
А для авторизаций что используют чаще всего? Passport? Пока его начал изучать, но может есть ещё варианты.
Не удобен. Писал авторизации сервис. От паспорта отказаться пришлось
Alexander
Не удобен. Писал авторизации сервис. От паспорта отказаться пришлось
Вот и узнаю, а альтернативы годные не подскажете?
Дмитрий
Проще самому провайдера реализовать
Дмитрий
Простая фабрика