@vuejs_ru
Vue.js — русскоговорящее сообщество

Общаемся на темы, посвященные Vue.js и опыту его использования. Проблемы. Новости. Решения. См. также: @js_ru, @react_js, @angular_ru, @nuxtjs_ru Вакансии только тут: @javascript_jobs

3988 members

Архив канала @vuejs_ru 24 января 2017 г.

01:27:15 ДП
User 149642482
Боброго времени суток)
01:48:54 ДП
User 4627228
Не забываем представляться :)
01:53:36 ДП
User 149642482
Привет! Меня зовут Андрей.
Работаю в компании ad1,
Я простой верстальщик, с небольшими знаниями js, в большей степени фотошопер.
Только начал изучать Vue.
Я из Санкт-Петербурга.
Ссылочку на группу дали в "JavaScript Jobs"
#whois
02:26:24 ДП
04:57:43 ДП
User 60331718
Babel 6 regeneratorRuntime is not defined with async/await - Stack Overflow
http://stackoverflow.com/questions/33527653/babel-6-regeneratorruntime-is-not-defined-with-async-await
stackoverflow.com/questions/33527653/babel-6-regeneratorruntime-is-not-defined-with-async-await
I'm trying to use async, await from scratch on Babel 6, but I'm getting regeneratorRuntime is not defined. .babelrc file { "presets": [ "es2015", "stage-0" ] } package.json file "devDepende...
04:58:02 ДП
User 60331718
@kelin2025
07:23:05 ДП
User 133277047
User 133277047
юзаю и роутер и vuex. в шаблоне родительского аппа есть <router-view></router-view>. При попытке запустить приложение вылетает Uncaught TypeError: Cannot read property 'matched' of undefined. Если спилить <router-view> и поставить вместо него какой-нибудь компонент то вылетает Uncaught TypeError: Cannot read property 'state' of undefined (в этом компоненте есть computed от стейта) . получается что не видит ни $router ни $state. Vue.use(...) я делаю лдя каждого из этих модулей, куда копать?
Забавно, но когда я просто переименовал routes в router, то все заработало. Какой-то сложный прикол
07:49:15 ДП
User 60331718
User 133277047
Забавно, но когда я просто переименовал routes в router, то все заработало. Какой-то сложный прикол
Я даже знаю почему
07:49:45 ДП
User 60331718
Потому что routes это возвращаяемый объект от методов router
07:49:55 ДП
User 60331718
Как правило
08:10:05 ДП
User 133277047
User 60331718
Потому что routes это возвращаяемый объект от методов router
не совсем понимаю. ты имеешь ввиду что где-то в конструкторе VueRouter есть строка return routes и поэтому ошибка?
08:42:01 ДП
User 60331718
User 133277047
не совсем понимаю. ты имеешь ввиду что где-то в конструкторе VueRouter есть строка return routes и поэтому ошибка?
Нет,  просто что у this, нет $routes, а есть $router, и например используя $router.match() можно получить объект routes
08:45:01 ДП
User 133277047
User 60331718
Нет,  просто что у this, нет $routes, а есть $router, и например используя $router.match() можно получить объект routes
так, я чего то не понимаю. какая разница какое имя переменной я отдаю как параметр функции?
08:53:04 ДП
User 60331718
User 133277047
так, я чего то не понимаю. какая разница какое имя переменной я отдаю как параметр функции?
Закинь на гист как было и как стало
09:03:55 ДП
User 133277047
было 
import routes from './routes'

const app = new Vue({
    store,
    routes,
    el: '#app',
    render: h => h(App)
})
стало 

import router from './routes'

const app = new Vue({
    store,
    router,
    el: '#app',
    render: h => h(App)
})
09:05:07 ДП
User 133277047
получается что любое другое имя отличное от router будет приводить к такой ошибке
09:05:30 ДП
User 133277047
почему? я не знаю, я плохо знаю js
09:08:16 ДП
User 136935602
напиши router: routes
09:08:21 ДП
User 136935602
вместо routes и будет тебе счастье
09:08:30 ДП
User 136935602
router, это короткая форма записи router: router
09:08:40 ДП
User 136935602
Vue ждет что роутер ты ему дашь в поле роутер
09:08:51 ДП
User 136935602
соответственно если твой импорт называется по другому - его надо переименовать
09:08:55 ДП
User 136935602
router: routes,
09:16:54 ДП
User 60331718
User 136935602
router, это короткая форма записи router: router
о, вот это надо глянуть? в каком файле это смотреть?
09:18:42 ДП
User 152816933
это называется ES6 :)
09:19:57 ДП
User 152816933
https://habrahabr.ru/post/305900/#5
habr.com/post/305900
От переводчика: Предлагаю вашему вниманию перевод краткого (действительно краткого) руководства по ES6. В нём можно ознакомиться с основными понятиями стандарта...
09:20:50 ДП
User 133277047
как-то это не явненько, конечно
09:21:37 ДП
User 152816933
http://learn.javascript.ru/es-object
learn.javascript.ru/es-object
В этом разделе мы рассмотрим нововведения, которые касаются именно объектов.
09:25:31 ДП
User 152816933
@xanf_ua меня второй день не отпускает книга, которую ты рекомендовал на стриме, про узкую специализацию) Слушаю аудио версию.
09:25:36 ДП
User 152816933
блин, не сюда
09:27:10 ДП
User 133277047
Кстати, а это нормально что эксепшены, которые произошли в мутации никак не отобразилиь в консоли?
09:27:59 ДП
User 60331718
User 152816933
это называется ES6 :)
воу, спасибо, а оно работает, если мы при передачи объекта в функцию конструируем аналогичным образом, а в самоу ункции параметр деструктуризируется?
09:28:35 ДП
User 229165046
работает
09:30:18 ДП
09:31:17 ДП
User 60331718
{
    email: obj.email,
    password: obj.password
 }
в 
{
    obj.email,
    obj.password
}
?
09:33:16 ДП
User 55423102
так вроде не прокатит
09:33:36 ДП
09:33:40 ДП
User 229165046
вот так
09:37:00 ДП
09:37:54 ДП
User 60331718
User 55423102
так вроде не прокатит
да, не прокатывает, пичаль прям :с
09:39:23 ДП
User 229165046
потому что надо {email, password}
09:41:04 ДП
User 60331718
User 229165046
потому что надо {email, password}
но почему через Obj.email не прокатывает?
09:41:40 ДП
User 60331718
надо будет посмотреть как получить литеральное имя у объекта, может быть в этом ответ на вопрос
09:42:34 ДП
User 229165046
когда ты так пишешь, у тебя получается {obj.email: obj.email}
09:45:38 ДП
User 60331718
User 229165046
когда ты так пишешь, у тебя получается {obj.email: obj.email}
вот, а почему так?
09:46:12 ДП
User 60331718
т.е что делает это имя имено obj.email, а не просто email
09:46:37 ДП
User 60331718
т.е например есть Function.name, что-то похожее наверняка есть и у объекта?
09:51:15 ДП
User 60331718
т.е с литеральными признаками можно было бы делать что-то типо такого:
{
    [obj.email.name]: obj.email
}
правда этот код нерабчий, т.е как у obj нет свойства name
10:04:31 ДП
User 229165046
для чего ты это хочешь сделать? один объект перегнать в другой?
10:05:12 ДП
User 60331718
User 229165046
для чего ты это хочешь сделать? один объект перегнать в другой?
просто у меня сейчас такое вот в коде
10:05:26 ДП
User 60331718
это типо действия в сторе через проксю
10:05:45 ДП
User 60331718
а в самом действии деструктуризация используется
10:10:19 ДП
User 229165046
ну тут ты можешь написать obj.login({email, password} = obj) по идее
10:10:46 ДП
User 229165046
тебе туда прилетят email и password
10:11:45 ДП
User 60331718
User 229165046
ну тут ты можешь написать obj.login({email, password} = obj) по идее
воу, крутая идея
10:15:13 ДП
User 60331718
User 229165046
ну тут ты можешь написать obj.login({email, password} = obj) по идее
не, не работает, почему-то пишет что ReferenceError: email is not defined
10:18:13 ДП
User 60331718
User 60331718
не, не работает, почему-то пишет что ReferenceError: email is not defined
хм, а в браузере работает
10:18:27 ДП
10:19:25 ДП
User 229165046
ты там как принимаешь?
10:19:46 ДП
User 229165046
нужно прнимать в параметры {email, password}
10:20:44 ДП
10:24:54 ДП
User 229165046
а вызываешь как?
10:26:21 ДП
User 60331718
проксирую через mapActions на login
10:26:37 ДП
User 60331718
а потом вот так:
obj.login({ email, password } = obj)
10:26:53 ДП
User 60331718
где let obj = this
10:28:45 ДП
User 229165046
а референс еррор валит на какой строке?
10:29:24 ДП
10:29:50 ДП
User 55423102
User 60331718
где let obj = this
let { email, password } = this попробуй
10:31:18 ДП
User 60331718
User 55423102
let { email, password } = this попробуй
не, у меня  obj там довольно активно используется
10:31:45 ДП
User 55423102
Тогда не заморачивайся)
10:32:15 ДП
User 60331718
https://gist.github.com/Fl0pZz/001180ee41a73de33102388f73eef2a1
gist.github.com/Fl0pZz/001180ee41a73de33102388f73eef2a1
10:36:54 ДП
User 60331718
User 55423102
Тогда не заморачивайся)
в любом случае код страшный и плохо читаемый, но я не знаею как его переписать в более читаемый вид
10:37:18 ДП
User 60331718
стоит ли вводить какие-то переменный ради читаемости кода
10:37:37 ДП
10:37:38 ДП
10:37:42 ДП
User 133944225
шо ж тут написано то такое
10:37:59 ДП
User 60331718
User 133944225
шо ж тут написано то такое
примис от промиса внутри промиса :D
10:38:19 ДП
User 60331718
шутка конечно, просто ветвление сильное и это раздражает
10:39:22 ДП
User 133944225
зачем тебе if(success) ?
10:39:45 ДП
User 60331718
просто валидетор возвращает промис, который нужно чекать, если все успешно, то я отправляю данные на сервер если данные отправились с ошибкой то пушу уведомление
10:39:47 ДП
User 55423102
Ну надо же добиться успеха где-нибудь,)))
10:40:02 ДП
User 133944225
а как ты понимаешь
10:40:07 ДП
User 133944225
что success это всегда удачно ?)
10:40:16 ДП
User 60331718
User 133944225
зачем тебе if(success) ?
потому что если валидация неуспешна, то я пушу новое уведомление с ошибками
10:40:23 ДП
User 133944225
почему не сделать
vlidateAll().then(result => { call new promise }).catch(err) ?
10:40:31 ДП
User 60331718
User 133944225
что success это всегда удачно ?)
ну да, стоит переименовать))
10:42:06 ДП
User 60331718
User 133944225
почему не сделать
vlidateAll().then(result => { call new promise }).catch(err) ?
потому что в случае ошибки валидации vee-validate возвращает ошибку через resolve(false), и перехватывать ошибку - нельзя
10:43:18 ДП
User 60331718
User 60331718
потому что в случае ошибки валидации vee-validate возвращает ошибку через resolve(false), и перехватывать ошибку - нельзя
я об этом уже жаловался пару дней назад, тогда Илья поддержал решение автора, босновав это тем, что на самом деле у промиса 3 варианта ответа и типо это верно, но моего опыта пока мало, чтобы опровергнуть это
10:43:19 ДП
10:43:31 ДП
User 136935602
Илья все еще уверен в этом
10:43:56 ДП
User 40268779
чят крч написание генератора компонентов для вашей код-базы vue идет по плану, сегодня только прикручу красивый вывод в html файлик
10:44:18 ДП
User 60331718
User 40268779
чят крч написание генератора компонентов для вашей код-базы vue идет по плану, сегодня только прикручу красивый вывод в html файлик
доки напиши главное!
10:44:23 ДП
User 40268779
потом наврное надо grunt/gulp таску плагин запилить
10:44:38 ДП
User 136935602
что у валидации три состояния:
- passed validation (все ок)
- not passed validation (валидация отработала и вернула что валидация провалилось)
- failed validation (валидация сгенерировала ошибку - к примеру сервер апишечки недоступен, или просто код exception сгенерировал)
10:44:43 ДП
User 60331718
User 40268779
потом наврное надо grunt/gulp таску плагин запилить
и чтоб на вебпаке работало
10:44:46 ДП
User 40268779
да да япока в /dev ветку коммичу чтобы не отбивать интерес у тех кто зайдет на репо ))
10:45:11 ДП
User 40268779
User 60331718
и чтоб на вебпаке работало
само собой с этого начать )) прост набо будет разобраться как оно там
10:45:15 ДП
User 133944225
можно ссылку на репоз?
10:45:35 ДП
User 40268779
https://github.com/shershen08/vue-styleguide-generator
github.com/shershen08/vue-styleguide-generator
vue-styleguide-generator - React inspired style guide generator for Vue.js
10:45:58 ДП
User 60331718
User 136935602
что у валидации три состояния:
- passed validation (все ок)
- not passed validation (валидация отработала и вернула что валидация провалилось)
- failed validation (валидация сгенерировала ошибку - к примеру сервер апишечки недоступен, или просто код exception сгенерировал)
ладно, вынужден в этот раз полностью согласится с тобой)
10:46:38 ДП
User 60331718
User 136935602
что у валидации три состояния:
- passed validation (все ок)
- not passed validation (валидация отработала и вернула что валидация провалилось)
- failed validation (валидация сгенерировала ошибку - к примеру сервер апишечки недоступен, или просто код exception сгенерировал)
ты валидацию на сервере делаешь не через дейтсвия состояния?
10:46:46 ДП
User 136935602
не понял вопроса
10:47:57 ДП
User 60331718
т.е я делаю через действие, а ты делаешь асинхронно через `vee-validate` как-то?
10:48:11 ДП
User 136935602
а причем здесь валидация
10:48:13 ДП
User 136935602
это не валидация
10:48:34 ДП
User 60331718
User 136935602
а причем здесь валидация
валидация на сервере жеж
10:49:06 ДП
User 136935602
ща я твой код перепишу
10:49:09 ДП
User 136935602
а то плакать хочется
10:50:03 ДП
User 60331718
пока что у меня это немного дискретно выглядит:
чекнуть то, что ввел пользователь с помощью vv, если все ок, то отправляем данные на сервер, если и на сервере все ок, то изменяем состояние
10:50:26 ДП
User 60331718
User 136935602
а то плакать хочется
мне тоже, поэтому и кинул, ожидая что кто-то советы даст, как это безобразие исправить)
10:55:25 ДП
User 60331718
User 136935602
а то плакать хочется
https://gist.github.com/Fl0pZz/99d5dfddd924cbc851fe9554b4981880
вот вся логика компоненты
gist.github.com/Fl0pZz/99d5dfddd924cbc851fe9554b4981880
10:56:54 ДП
User 136935602
https://gist.github.com/anonymous/5337347aae20ff6f1b8838481959b16f
gist.github.com/anonymous/5337347aae20ff6f1b8838481959b16f
10:56:57 ДП
User 136935602
я бы как-то так писал
10:58:21 ДП
User 60331718
вау👍🏻
11:00:11 ДП
User 60331718
User 136935602
я бы как-то так писал
const { email, password } = this; должно же быть равно obj, а не this?
11:00:20 ДП
User 136935602
а зачем тебе obj?
11:00:30 ДП
User 136935602
стрелочные функции сохранят this
11:01:20 ДП
User 60331718
User 136935602
стрелочные функции сохранят this
сохранят this внутри .then()?
11:02:39 ДП
User 136935602
конечно
11:02:53 ДП
User 136935602
стрелочная функция захватывает this в момент своего объявления а не выполнения
11:02:57 ДП
User 55423102
User 136935602
что у валидации три состояния:
- passed validation (все ок)
- not passed validation (валидация отработала и вернула что валидация провалилось)
- failed validation (валидация сгенерировала ошибку - к примеру сервер апишечки недоступен, или просто код exception сгенерировал)
А если попробовать фейлы объединить и разруливать по разным типам ошибок?
11:03:01 ДП
User 60331718
хм, действительно:
Лексическое связывание. Значения специальных переменных this, super и arguments определяются не тем, как стрелочные функции были вызваны, а тем, как они были созданы.
https://habrahabr.ru/company/mailru/blog/213455/
habrahabr.ru/company/mailru/blog/213455
Одной из самых интересных частей нового стандарта ECMAScript 6 являются стрелочные функции. Стрелочные функции, как и понятно из названия определяются новым...
11:03:39 ДП
User 136935602
User 55423102
А если попробовать фейлы объединить и разруливать по разным типам ошибок?
это традиционный холивар. Однозачного решения здесь нет (такой же холивар в отменяемых промисах - статус "промис отменен" это фейл или отдельное состояние)
11:06:21 ДП
User 60331718
User 136935602
стрелочная функция захватывает this в момент своего объявления а не выполнения
т.е если бы было then(function (...) {...}), то тогда бы this переопределился?
11:06:28 ДП
11:11:36 ДП
User 55423102
header: ${key.charAt(0).toUpperCase() + key.slice(1)},
а разве капитализацию первой буквый средствами CSS не проще делать?)
11:11:51 ДП
User 55423102
надо посмотреть что там с поддержкой браузеров
11:12:10 ДП
11:14:47 ДП
User 60331718
User 55423102
header: ${key.charAt(0).toUpperCase() + key.slice(1)},
а разве капитализацию первой буквый средствами CSS не проще делать?)
хех, я пока не знаю таких тонкостей CSS, да и лень как-то
11:15:01 ДП
User 60331718
но да, наверное стоит написать фильтр для этого
11:15:14 ДП
User 60331718
типо джанговского capitalize
11:16:14 ДП
User 55423102
вся эта строчка и есть весь фильтр считай
11:16:27 ДП
User 55423102
а через CSS это вообще данными манипулировать не надо будет
11:16:30 ДП
User 133277047
User 60331718
типо джанговского capitalize
в нативном питоне это есть
12:32:09 ПП
User 149642482
Ребята, я совета хотел спросить хотел. Я тут начал изучать vue и начал переписывать админку для сайта, у меня есть список постов over 10К, при нажатии на один из постов нужно подгружать в данные в форму, проблема в том, что я не могу найти инфу, как повесить событие на весь список, а вешать событие на каждый элемент как то не по феншую...
12:32:14 ПП
12:32:49 ПП
User 149642482
Можно ли вообще повесить событие на список?
12:33:18 ПП
User 60331718
User 149642482
Ребята, я совета хотел спросить хотел. Я тут начал изучать vue и начал переписывать админку для сайта, у меня есть список постов over 10К, при нажатии на один из постов нужно подгружать в данные в форму, проблема в том, что я не могу найти инфу, как повесить событие на весь список, а вешать событие на каждый элемент как то не по феншую...
Делигированный обработчик?
12:34:03 ПП
User 60331718
User 149642482
Ребята, я совета хотел спросить хотел. Я тут начал изучать vue и начал переписывать админку для сайта, у меня есть список постов over 10К, при нажатии на один из постов нужно подгружать в данные в форму, проблема в том, что я не могу найти инфу, как повесить событие на весь список, а вешать событие на каждый элемент как то не по феншую...
Но вообще похоже тебе стоит юзать $emit
12:35:07 ПП
User 149642482
<ul v-for="item in datalist">
  <li>
    <a href="#" v-on:click="goform('item.id')">
      {{item.name}}
     </a>
   </li>
</ul>
12:35:14 ПП
User 149642482
Типа такого?
12:36:53 ПП
User 60331718
Ну да
12:37:01 ПП
User 149642482
То бишь опять вешать обработчик на каждый элемент...
12:37:07 ПП
User 149642482
Беда...
12:37:34 ПП
User 60331718
User 149642482
То бишь опять вешать обработчик на каждый элемент...
Он хитро утроен
12:37:54 ПП
User 60331718
В доках написано, что он сам реализует обработчики, а не использует нативыне
12:39:13 ПП
User 149642482
Спасибо)
12:39:24 ПП
User 55423102
Обратчик один по идее останется
12:39:41 ПП
User 55423102
Просто с разными параметрами вызываться будет
12:52:23 ПП
User 40268779
User 55423102
Просто с разными параметрами вызываться будет
вот я тоже так думаю. не пойму что @godevru имел ввиду "не по фен шую"
12:55:42 ПП
User 149642482
User 40268779
вот я тоже так думаю. не пойму что @godevru имел ввиду "не по фен шую"
После jquery тяжело воспринимать фреймворки, для меня 10К обработчиков на странице это ад)
12:56:40 ПП
User 40268779
User 149642482
После jquery тяжело воспринимать фреймворки, для меня 10К обработчиков на странице это ад)
у тебя нет 10к обработчиков, у тебя биндинг на событие всплывающее к родителю и обработчк один
12:56:57 ПП
User 40268779
$('container').on('click', 'a.link', doStuff)
12:57:26 ПП
User 60331718
О, как я и думал, что это делигированный обработчик
01:04:55 ПП
User 55423102
Ну это типа него, только вью этим сам занимается
01:05:17 ПП
User 85413039
что то народ в начале чата был более веселее
01:05:20 ПП
User 85413039
в начале чата
01:05:42 ПП
User 55423102
User 85413039
в начале чата
Долго до начала истории чата листал?)
01:06:11 ПП
User 94523403
как можно сделать скачиваемым файл, который лежит в props? Вне vue.js юзал html5 <a href="" download>, но тут проблема что у меня файл в модели vue, и путь к нему с помощью href не пропишешь
01:07:53 ПП
User 149642482
<a :href="url"></a>
01:08:11 ПП
01:15:50 ПП
User 55423102
а если у него все-таки в props лежит массив байт?)))
01:48:12 ПП
User 55423102
А вот такой вопрос. Есть компонент, показывает список. Этот список загружаем ajax-запросом отдельным. Где лучше эту загрузку начинать? Сейчас в mounted запихал, но как-то чувствуется что подтормаживает слегка эта загрузка. Может в каком-то другом хуке лучше стартовать загрузку данных?
01:49:39 ПП
User 55423102
хм... надо наверное в created попробовать
01:50:46 ПП
User 133750577
User 55423102
А вот такой вопрос. Есть компонент, показывает список. Этот список загружаем ajax-запросом отдельным. Где лучше эту загрузку начинать? Сейчас в mounted запихал, но как-то чувствуется что подтормаживает слегка эта загрузка. Может в каком-то другом хуке лучше стартовать загрузку данных?
Он сразу отправляет запрос же, не? Ну 1мс может между created и mounted
01:51:08 ПП
User 133750577
Timesttampнул бы
01:51:08 ПП
User 55423102
Ну я решил не компонент с пропсами вызывать, а открыть компонент и донаполнить его данными
01:51:17 ПП
User 55423102
mounted не сразу
01:51:28 ПП
User 55423102
поменял вот на created, вроде пошустрее отображаться стал
01:52:31 ПП
User 133750577
Ну можно, наверное, в дату прям еще awaitом, если логика запроса вне компонента
02:04:44 ПП
User 60331718
User 55423102
А вот такой вопрос. Есть компонент, показывает список. Этот список загружаем ajax-запросом отдельным. Где лучше эту загрузку начинать? Сейчас в mounted запихал, но как-то чувствуется что подтормаживает слегка эта загрузка. Может в каком-то другом хуке лучше стартовать загрузку данных?
BeforeMounted, не?
02:05:45 ПП
User 133277047
User 55423102
А вот такой вопрос. Есть компонент, показывает список. Этот список загружаем ajax-запросом отдельным. Где лучше эту загрузку начинать? Сейчас в mounted запихал, но как-то чувствуется что подтормаживает слегка эта загрузка. Может в каком-то другом хуке лучше стартовать загрузку данных?
Я запрос в created делаю
02:06:01 ПП
User 55423102
User 60331718
BeforeMounted, не?
ну я вот тоже полез почитал, и вроде created лучше подошел, данные уже есть а монтирование тоже не началось
02:06:17 ПП
User 60331718
User 55423102
поменял вот на created, вроде пошустрее отображаться стал
Она разве не блокирует формирование компоненты, до тех пор, пока не будет выполнен created?
02:06:49 ПП
User 60331718
Хот я сам в created использую
02:11:20 ПП
User 55423102
ajax-запросы асинхронные ж
02:11:30 ПП
User 55423102
а когда ответ вернется промис метнётся
02:12:15 ПП
User 60331718
User 55423102
а когда ответ вернется промис метнётся
?
02:12:41 ПП
User 55423102
ну не должен заблокировать
02:12:52 ПП
User 55423102
типа стартанет, жизненный цикл дальше поедет
02:13:03 ПП
User 55423102
а когда ответ вернется выполнится что ответ запихнется в данные
02:13:28 ПП
User 55423102
по моим ощущениям должно всё так происходить 😃
02:13:47 ПП
User 60331718
Но ты ведь сразу после промиса вызываешь then, не так ли?
02:14:01 ПП
02:14:15 ПП
User 60331718
Но тогда это как future в c++
02:14:33 ПП
User 60331718
Он асинхроен до тех пор, пока ты не вызвал then
02:14:45 ПП
User 55423102
ну разве промис тормозит не только свою очередь?
02:15:02 ПП
User 55423102
не так сформулировал
02:15:08 ПП
User 60331718
А как вызвал, будешь ждать когда резолвится
02:15:14 ПП
User 55423102
промис тормозит по идее только свою очередь, а все остальное выполняется
02:15:26 ПП
User 60331718
User 55423102
промис тормозит по идее только свою очередь, а все остальное выполняется
Вот давай загуглим
02:15:32 ПП
User 55423102
скорее он ждет когда резолвится и дальше очередь свою дергает
02:18:40 ПП
User 55423102
User 60331718
Вот давай загуглим
я такое нашел: мы делаем асинхронную цепочку из .then
02:18:43 ПП
02:19:41 ПП
User 205272986
ВНИМАНИЕ, ВОПРОС. Что написать на дипломный проект?
02:19:54 ПП
User 55423102
что-нибудь что тебе интересно будет делать
02:19:59 ПП
User 60331718
Обещания JavaScript / Хабрахабр
https://m.habrahabr.ru/post/209662/
m.habrahabr.ru/post/209662
Всем привет, и ещё раз всех с прошедшими праздниками. Трудовые будни набирают обороты и вместе с ними растёт информационный голод мучающий нас. Мир разработки...
02:20:04 ПП
User 55423102
@Fl0pZz Когда функция-executor вызывает reject или resolve, то PromiseState становится "resolved" или "rejected", а все функции-обработчики из соответствующего списка перемещаются в специальную системную очередь "PromiseJobs".

Эта очередь автоматически выполняется, когда интерпретатору «нечего делать». Иначе говоря, все функции-обработчики выполнятся асинхронно, одна за другой, по завершении текущего кода, примерно как setTimeout(..,0).

Исключение из этого правила – если resolve возвращает другой Promise. Тогда дальнейшее выполнение ожидает его результата (в очередь помещается специальная задача), и функции-обработчики выполняются уже с ним.
02:20:20 ПП
User 55423102
где-то отдельно эта очередь зависает
02:22:24 ПП
User 205272986
ну ребята
02:22:25 ПП
User 60331718
User 55423102
где-то отдельно эта очередь зависает
Но дык, он становится асинхронным, только после resolve или rejected
02:22:28 ПП
User 205272986
давайте, ваши идеи
02:22:35 ПП
User 60331718
А до этого - ничего не сказано
02:22:39 ПП
User 60331718
User 205272986
ну ребята
Игру пили
02:22:44 ПП
User 60331718
На webassembly
02:22:53 ПП
User 205272986
какое-нибудь single page приложение, чтобы можно было его партировать на телефон
02:22:57 ПП
User 205272986
но какое?
02:23:07 ПП
User 205272986
и чтобы его не стыдно было показать гуглу
02:23:18 ПП
User 60331718
User 205272986
и чтобы его не стыдно было показать гуглу
:D
02:23:28 ПП
02:24:22 ПП
User 60331718
User 205272986
какое-нибудь single page приложение, чтобы можно было его партировать на телефон
Только фронт или фулстек?
02:24:33 ПП
User 205272986
фулстек
02:24:53 ПП
User 205272986
дипломник прям должен быть максимально анальным, интересным
02:24:57 ПП
User 55423102
Торренты на промисах
02:25:19 ПП
User 60331718
User 205272986
дипломник прям должен быть максимально анальным, интересным
Webworkers, electron
02:30:08 ПП
User 60331718
User 205272986
дипломник прям должен быть максимально анальным, интересным
Знаешь, можно и обычный сайт усложнить до невозможного, оно тебе надо?
02:30:29 ПП
User 60331718
User 60331718
Знаешь, можно и обычный сайт усложнить до невозможного, оно тебе надо?
Я лично в подобном участвовал, года 2 назад
02:31:26 ПП
User 40268779
User 205272986
и чтобы его не стыдно было показать гуглу
AMP
02:32:16 ПП
User 175310
User 205272986
какое-нибудь single page приложение, чтобы можно было его партировать на телефон
🖐🏽
02:32:44 ПП
User 205272986
User 175310
🖐🏽
здорово
02:33:03 ПП
User 175310
как-то я пропустил, когда ты зашел
02:36:01 ПП
User 40268779
вопрос тем у кого уже живой и коммерческий проект на vue - вы к созданным компонентам где пишете (или стали бы писать) пометки : \
 1) рядом в той же папке (напрмер в readme.md) ; 
 2)  в комментах в начале файле ; 
 3) vue-же такой просто и понятный, нафиг описания компонентов
02:44:12 ПП
User 152816933
User 40268779
вопрос тем у кого уже живой и коммерческий проект на vue - вы к созданным компонентам где пишете (или стали бы писать) пометки : \
 1) рядом в той же папке (напрмер в readme.md) ; 
 2)  в комментах в начале файле ; 
 3) vue-же такой просто и понятный, нафиг описания компонентов
02:45:43 ПП
User 40268779
круто спасибо
02:45:48 ПП
User 40268779
вот до чего дошел
02:45:58 ПП
02:47:06 ПП
User 40268779
.md если есть в папке компонента - уже читает, но еще надо его совать в правильное место и навигацию по списку слева доделаю
03:14:13 ПП
04:21:03 ПП
User 133277047
User 60331718
Но дык, он становится асинхронным, только после resolve или rejected
А что оно по твоему делает пока ты ждёшь данные с сервера?
04:29:11 ПП
User 133277047
И вообще какой смысл в промисах на синхронный код )
04:29:29 ПП
User 60331718
User 133277047
А что оно по твоему делает пока ты ждёшь данные с сервера?
объяснение про PromiseJob - хорошее
04:31:13 ПП
User 60331718
User 133277047
А что оно по твоему делает пока ты ждёшь данные с сервера?
и если бы ни это, то был бы синхронным
04:32:02 ПП
User 133277047
Не был бы он синхронным
04:34:30 ПП
User 133277047
У тебя и без промиса Ajax запрос не тормошил бы event loop
04:34:31 ПП
User 60331718
User 133277047
Не был бы он синхронным
был бы, потому что он не резолвится, до тех пор пока не получен ответ
04:34:38 ПП
User 60331718
User 133277047
У тебя и без промиса Ajax запрос не тормошил бы event loop
да как?
04:34:42 ПП
User 60331718
с чего ты взял?\
04:35:02 ПП
User 133277047
Потому что в этом и есть смысл асинхронного языка
04:35:19 ПП
User 60331718
User 133277047
Потому что в этом и есть смысл асинхронного языка
но java выполняется синхронно же
04:35:44 ПП
User 60331718
на хабре даже написаны причины создания примисов - потмоу очень много чего исполняется в одном потоке
04:35:46 ПП
User 133277047
Попробуй на httpbin с delay сделать запрос
04:36:22 ПП
User 60331718
User 133277047
Попробуй на httpbin с delay сделать запрос
это не о чем не говорит, лучше скажи что почитать про это
04:36:25 ПП
User 133277047
У тебе промисы в том же потоке, насколько я знаю
04:37:07 ПП
User 133277047
User 60331718
но java выполняется синхронно же
А причём тут жаба?
04:37:20 ПП
User 60331718
User 133277047
А причём тут жаба?
хотел js написать :\
04:38:25 ПП
User 133277047
Будет конечно смешно, если это не так )
04:40:16 ПП
User 60331718
https://habrahabr.ru/company/mailru/blog/269465/
habr.com/company/mailru/blog/269465
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать. У нас проблемы...
04:40:41 ПП
User 60331718
User 133277047
Будет конечно смешно, если это не так )
https://habrahabr.ru/post/209662/
habrahabr.ru/post/209662
Всем привет, и ещё раз всех с прошедшими праздниками. Трудовые будни набирают обороты и вместе с ними растёт информационный голод мучающий нас. Мир разработки...
04:43:17 ПП
User 133277047
Не увидел там что io в js синхронный
04:44:38 ПП
User 60331718
однопточный
04:46:37 ПП
User 133277047
Ну  однопоточность Этторе значит что он не асинхронный
04:46:55 ПП
User 133277047
Это не*
04:47:27 ПП
User 60331718
User 133277047
Это не*
нажми стрелочку вверх на клавиатуре
04:47:29 ПП
User 133277047
Асинхронность это не параллельность
04:47:42 ПП
User 60331718
User 133277047
Асинхронность это не параллельность
да, я знаю
04:48:06 ПП
User 133277047
User 60331718
нажми стрелочку вверх на клавиатуре
Я с телефона в самолете мне и так неудобно )
04:50:10 ПП
User 133277047
Рендеринг в браузере это синхронная операция. Но если ты делаешь io операции то ты можешь переключить контекст и делать что то другое
04:50:23 ПП
User 133277047
И промисы тут не причём
04:50:38 ПП
User 133277047
И без них были асинк запросы
04:51:49 ПП
User 60331718
User 133277047
Рендеринг в браузере это синхронная операция. Но если ты делаешь io операции то ты можешь переключить контекст и делать что то другое
ок, тогда в какой момент мы возвращаемся и где гарантия, что результат у нас будет не тогда, когда исполнится кусок кода, где нужен был этот результат?
04:51:58 ПП
User 60331718
или ты хочешь сказать, что это сделано неявно?
04:53:12 ПП
User 133277047
Промисы это "сахарок"
04:53:36 ПП
User 133277047
Js изначально событийно ориентированный
04:53:57 ПП
User 133277047
Вешаешь колбеки и на события
04:54:24 ПП
04:54:32 ПП
User 136935602
Промисы это сахар
04:54:41 ПП
User 136935602
Вся соль в event loop
04:55:38 ПП
User 133277047
Почитай про асинхронную
04:55:51 ПП
User 133277047
Про event loop
04:56:01 ПП
User 133277047
И все станет на свои места
04:57:58 ПП
User 60331718
о, уже есть что гуглить) почитаю
07:23:58 ПП
User 55423102
https://habrahabr.ru/post/320306/
habrahabr.ru/post/320306
В конце 2015 года я услышал об этой паре ключевых слов, которые ворвались в мир JavaScript, чтобы спасти нас от promise chain hell, который, в свою очередь,...
07:24:43 ПП
User 55423102
а по поводу в каком хуке подумал, решил что если только загрузка данных — created лучший вариант, а если потом с этими данными навешивать какой jquery-плагинчик нужно, то только в mounted уже
07:34:44 ПП
User 112715267
User 55423102
https://habrahabr.ru/post/320306/
habrahabr.ru/post/320306
В конце 2015 года я услышал об этой паре ключевых слов, которые ворвались в мир JavaScript, чтобы спасти нас от promise chain hell, который, в свою очередь,...
сколько раз сегодня эту статью постили?
07:35:16 ПП
User 55423102
а было уже сегодня? чёрт, знал что лучше бы дождаться полуночи чтобы первым запостить
07:35:35 ПП
User 298347855
User 112715267
сколько раз сегодня эту статью постили?
один, если сюда
07:35:45 ПП
User 55423102
значит пропустил :)
07:35:47 ПП
07:35:50 ПП
User 298347855
ты первый
07:35:52 ПП
User 298347855
если сюда)
07:35:53 ПП
User 112715267
хз, уже раза 4 вижу
07:35:57 ПП
User 112715267
значит, в других чатиках
07:36:02 ПП
User 298347855
User 112715267
хз, уже раза 4 вижу
это твои проблемы, если в других чатиках)
07:36:29 ПП
07:37:21 ПП
User 112715267
User 298347855
это твои проблемы, если в других чатиках)
грубо
07:37:29 ПП
User 298347855
User 112715267
грубо
Зато как есть...
07:37:30 ПП
User 112715267
просто ошибся
07:37:52 ПП
User 55423102
лучше расскажи тогда своё мнение о написанном)
07:37:59 ПП
User 112715267
В чатике node.js постили, во
07:39:28 ПП
User 112715267
смешанные чувства по поводу async/await
07:39:52 ПП
User 112715267
Чем людям вот такой вариант не нравится, не знаю
07:40:17 ПП
User 112715267
Конечно, если много чего будет в одном then(), будет плохо
но можно вынести в отдельную функцию
07:40:42 ПП
User 112715267
А код с await как-то тяжко читается
07:40:55 ПП
User 112715267
Хотя, так может быть с непривычки
07:41:00 ПП
User 55423102
Мне с промисами по ощущениям тоже чище кажется... а там тащить try/catch надо
07:41:10 ПП
User 39759851
User 112715267
Чем людям вот такой вариант не нравится, не знаю
А если там сложная махинация с циклом, while, etc и вообще программист сишарпист?
07:42:01 ПП
User 112715267
User 39759851
А если там сложная махинация с циклом, while, etc и вообще программист сишарпист?
Та же палка в сторону async/await
07:45:24 ПП
User 133750577
User 55423102
https://habrahabr.ru/post/320306/
habrahabr.ru/post/320306
В конце 2015 года я услышал об этой паре ключевых слов, которые ворвались в мир JavaScript, чтобы спасти нас от promise chain hell, который, в свою очередь,...
Вообще не понял претензию автора. Типа, код смотрелся странно когда-то. Ну ок. Проблема была в том, что нельзя было прервать асинхронную операцию, управлять процессом. С async/await это решено
07:45:58 ПП
User 55423102
А как прерывать async/await? я наверное еще не начитал
07:46:17 ПП
User 55423102
промисы тоже вроде кто-то отменяемыми делал, не в нативной реализации
07:46:31 ПП
User 112715267
промис же прерывается
07:46:35 ПП
User 112715267
reject() и все?
07:46:38 ПП
User 112715267
или это не то
07:46:53 ПП
User 55423102
reject это по ошибке повалились вниз по цепочке
07:48:20 ПП
07:48:23 ПП
User 112715267
ко всему надо привыкать
07:48:27 ПП
User 133750577
User 55423102
А как прерывать async/await? я наверное еще не начитал
try/catch
07:48:29 ПП
User 112715267
и к await тоже
07:48:40 ПП
User 55423102
а, ну да
07:48:52 ПП
User 133750577
Или извне?
07:50:04 ПП
User 133750577
В любом случае, это всегда промис внутри. Если сильно страшно, можно навешивать then и делать асинхронно
07:50:06 ПП
User 55423102
а если в цепочке операций будет несколько вариантов когда возможно вернуться к продолжению работы как-то обработавшись, то на промисах просто в цепочку вклинить надо два .catch, а в async/await получается два try/catch?
07:52:36 ПП
User 133750577
User 55423102
а если в цепочке операций будет несколько вариантов когда возможно вернуться к продолжению работы как-то обработавшись, то на промисах просто в цепочку вклинить надо два .catch, а в async/await получается два try/catch?
Непонял немного. Обработку вроде можно делать всю в одном catch, просто проверять тип/поля эксепшена, но я не делал такое пока
07:53:13 ПП
User 55423102
ну например что-то делаешь, если фейл, не падаешь совсем, а например с каким-то дефолтным значением продолжаешь работу
07:54:06 ПП
User 55423102
там кстати в другой статье прикольно сделали обработку ошибок в зависимости от типа
07:54:08 ПП
User 55423102
function guard(e, predicate) {
  if (!predicate(e)) throw e;
}

and then use it to e.g. only filter "not found" errors when downloading an image

try {
    await downloadImage(url);
} catch (e) { guard(e, e => e.code == 404);
    handle404(...);
}
07:54:46 ПП
User 55423102
Статья из комментов статьи на хабре
07:55:14 ПП
User 55423102
масло масляное) ну думаю поняли все
07:55:35 ПП
User 55423102
https://spion.github.io/posts/es7-async-await-step-in-the-wrong-direction.html
07:55:37 ПП
User 55423102
отсюда
08:01:33 ПП
08:18:58 ПП
User 112715267
народ, кто юзает vscode?
08:19:09 ПП
User 112715267
посоветуйте плагинов годных под js
08:19:58 ПП
User 55423102
Я использую. Сложно сказать что попадает в категорию годных)
08:20:21 ПП
User 55423102
Editorconfig точно годный
08:21:21 ПП
User 55423102
Остальное навскидку не помню, завтра могу сказать
08:21:27 ПП
User 112715267
ну, вообще любые полезные плюшки
08:24:18 ПП
User 40268779
User 112715267
посоветуйте плагинов годных под js
Да тупо ищи под используемые либы ➕. Eslint, terminal, test coverage
08:24:51 ПП
User 55423102
Или прям в студии открой и самые популярные выбери показывать
08:25:04 ПП
User 55423102
И смотри по убыванию что люди больше всего ставят
08:32:00 ПП
08:46:08 ПП
User 60331718
User 55423102
а если в цепочке операций будет несколько вариантов когда возможно вернуться к продолжению работы как-то обработавшись, то на промисах просто в цепочку вклинить надо два .catch, а в async/await получается два try/catch?
Вы так спорите, как будто их обоих одновременно использовать будет нельзя
08:47:07 ПП
User 55423102
В споре рождается истина
08:47:33 ПП
08:49:45 ПП
User 60331718
Это да)
09:10:13 ПП
User 112715267
а есть плагин, чтобы страницу можно было прям в vscode смотреть?
11:37:30 ПП
User 212842542
Тоже поставил попробовать vs code, Подскажите плз какие там плагины нужны для подсветки lang=pug,sass
11:37:56 ПП
User 212842542
Вроде поставил из поиска для vue, sass, pug плагины, но подсветки не появилось