Roman
чтоб не нанимать разных людей, не кооперироваться
Roman
особенно в мире js, который и бек и фронт
Andrew
await Promise.all([r(), r()])
а как мне быть с тем, что нужно результат каждого запроса получать?
Roman
тебе массив результатов придет
Andrey
с асинк/авэйт можно же вроде без ручных промисов, для этого этот сахар и придумывали? но я через промисы пишу (и не на жс), поэтому не уверен )
Gleb
Ну глобально пока ты джун — развивай и то и то
Gleb
Какой продукт?
Gleb
Свой продукт или где-то делать крутой продукт?
Andrey
можно все, кроме Promise.all
и тогда уж еще кроме Промис.рейс наверное? для симметрии )
Roman
а, ну да
Roman
просто редко им пользуюсь)
Andrey
короче, не жалею что пользуюсь промисапи без авэейтов )
Roman
чойта
Roman
я как только смог - переехал на await и доволен как слон
Alex
Какой продукт?
Именно свой, я думаю это максимальное удовольствие работать над тем, что тебе нравится
Roman
даже если нужен Promise.all то ты все равно не пишешь then и catch
Roman
так что даже в этом случае await выгодней
Andrey
а нафига лишние абстракции и еще помнить что в каком порядке писать (вроде там есть тонкости), когда с промисами ясная последовательная и любым образом вервящаяся цепочка до катча
Roman
про порядок не понял
Andrey
про порядок позжее напишу, ели будешь онлайн - щас с дитем гулять надо )
Roman
давай
Roman
пинганешь, мне еще тоже с ребенком гулять 😄
Evgeniy
Дратути, тут есть люди, которые имеют опыт написания кастомных Blot'ов для редактора Quill?
Andrew
тебе массив результатов придет
а можно замерить время выполнения каждого запроса?
Evgeny
а нафига лишние абстракции и еще помнить что в каком порядке писать (вроде там есть тонкости), когда с промисами ясная последовательная и любым образом вервящаяся цепочка до катча
Ну когда в проекте всего пару таких функций то ничего сложного, но со временм все это превращаеться в then catch ад ... причеем еще если ошибки обраватывать и обворачивать их как положено и логировать то вообще капец...... А порядок как я понимаю это имеется в виду то что await нельзя вызвать не из async фуркции...... но блин как то не особо и много помнить то нужно.... а вот читаеые и понятные методы это многового стоит. Да и легкое йпровление асинхронным кодоам как синхронным) особенно если операций большое количество)
SII
Всем привет
SII
Не могу разобраться, как данные загруженные ajax-ом можно поместить в глобальную переменную и использовать во всем коде. Почему то в callback функции если вывести через console.log(data) - покажет, а если занести в window.variable и посмотреть, что там, вернет undefined
Pavel
Не могу разобраться, как данные загруженные ajax-ом можно поместить в глобальную переменную и использовать во всем коде. Почему то в callback функции если вывести через console.log(data) - покажет, а если занести в window.variable и посмотреть, что там, вернет undefined
обычно в таких случая создают какой-то класс сингелтон для хранения данных. Примером может быть сервис в ангуляре, редакс стор в реакте, модель в бекбоне. Хранить в глоб. переменной плохая идея
SII
Пока только учусь на чистом js , не знаю даже es6. Есть учебный проект в котором нужно с сервера подгружать данные с массивом объектов и потом его использовать.. но не знаю как получить эти данные и свободно ими пользоваться
SII
SII
это модуль который запрашивает данные , я вызываю его через window.backend.load: function(onLoad, onError) в другом модуле
stay
Возвращать не пробовал данные из функции?
SII
SII
не получается
SII
то что на 15 строчке - показывает
SII
а на 21 - null
SII
Максим
а на 21 - null
21 строка выполняется быстрее чем выполнится функция в 19 строке
SII
да, я думал , мб ajax асинхронный, то не получает еще данных
SII
как мне тогда проверить, пока данные прилетят с сервера, что бы их запихнуть в переменую
Максим
Учи что такое асинхронность.
ну не так выразился
Андрей
ну не так выразился
Извини, я думал, что ты вопрос задал.
SII
но loadHunlder это же коллбек и если он выполнился, значит имеет data(в консоле выводтся), почему тогда я не могу data поместить в переменную
Oleg
но loadHunlder это же коллбек и если он выполнился, значит имеет data(в консоле выводтся), почему тогда я не могу data поместить в переменную
можешь хоть что там сделать. если нужно в window записать, то просто пишешь window.<название переменной> = <данные>
Evgeny
SII
SII
SII
не получается
Evgeny
да потому что ты проверяешь раньше чем запрос выполнился
Evgeny
Даже консоль тебе подсказывает что сначала вывелось то то на 21 строке а потом уже то что на 15.
SII
так а как мне поменять порядок
Evgeny
никак .... ты не от того видешь ...... тебе надо дождаться загрузки твоих данных.
Oleg
так а как мне поменять порядок
в самом простом варианте использовать данные в коллбэке loadHandler. там берешь и обрабатываешь их как надо. а если нужно в нескольких местах использовать, то там уже сложнее
SII
в самом простом варианте использовать данные в коллбэке loadHandler. там берешь и обрабатываешь их как надо. а если нужно в нескольких местах использовать, то там уже сложнее
да да , это понял. Возник какраз вопрос как его использовать в других местах, поэтому и хочу поместить в глоб. переменную
Evgeny
ну так ты и проверяй в хендлере что они там есть) профит)
Evgeny
причем это был даже не сарказм)
SII
SII
типо такого
SII
или коллбек в колбеке
SII
я уже запутался
Evgeny
твой код не ждет пока мотод Load загрузит данные .... поэтому там undefined если ты подолждешь то тогда получишь свои данные function loadHandler(data) { window.test = data; } window.backend.load(loadHandler, console.log); setTimeout(function() { console.log(window.test); }, 1000); не запусал код возможно описка где-то
Evgeny
это некорректный вариант. данные могут придти через 1.5 секунды
Это для обучения зато наглфдно понятно что через врем там что то да есть)
SII
я понял
SII
работает
SII
но так не нужно делать
SII
=D
Evgeny
да да верно)
SII
спасибо, я начал понимать