Serhii
возможно у тя системный оверрайд
Serhii
Хохлокiт
Artur
https://www.jetbrains.com/help/idea/auto-completing-code.html
Start typing. Press ⌃⇧Space or choose Code | Completion | SmartType from the main menu.
Nikita
Artur
контрол-пробел смена языка
Artur
на винде так и есть
Artur
походу хоткей виндовый
Serhii
input onchange = onChange(this)
onChange = function (input) input.val = input.length > 10 ? input.val.substr(0, 10) : input.val
Serhii
Gregory
Добрый день
Такой вот вопрос "на интерес", все работает, но я не понимаю как они это реализовали
Gregory
Serhii
Serhii
цсс?
Serhii
Nikita
у меня на маке контрал+пробел - спотлайт
Gregory
не понятно, как mongoose понимает, что всё, запрос в БД готов, и его можно выполнять.
ведь в конце ничего не стоит, типо "get()" или "exect()"
Хохлокiт
Serhii
не понимаю как цсс с паддингом решил проблему максмальной длинны вводимой строки
Serhii
может они сделали задержку пару мс на проверке нету ли никакой следующей команды построения квери
Nikolay
Вообще странно, exec должен быть в конце.
Gregory
Nikolay
Я думаю, это магия.
Gregory
Вот вот
Serhii
а какая нода у тя?
Serhii
скорее у тебя где то глубже по ссылке есть екзек
Gregory
8
Serhii
http://blog.revathskumar.com/2015/07/using-promises-with-mongoosejs.html
Serhii
я смотрю тут парень с калбеками не вызывает екзек так же
Gregory
При том, если не использовать async await приходится писать exec()
Serhii
а что у тебя за асинк
Serhii
нативный или что то кочал?
Serhii
если нода офигела, она async await превращает в Promise(response(response, reject),reject)
Serhii
https://blog.risingstack.com/mastering-async-await-in-nodejs/ тут в примерах так же есть монго с евейтом
Serhii
значит нода сама строит йолку, а монго хавает и исполняет как калбэки
Serhii
похоже на правду?
Gregory
Асинк родной
Но это же по сути те же самые промисы
но работает по другому
Serhii
у тебя может какой то async to generator есть?
Serhii
потому что в идеале async возвращает промис, а у тебя все await сгенерились в в цепочку калбэков вместо then
Gregory
Нет, чистая нода 8 версии
Serhii
https://chromium.googlesource.com/v8/v8.git/+/d08c0304c5779223d6c468373af4815ec3ccdb84/src/js/harmony-async-await.js
Serhii
выглядит как дерево
Serhii
тем более если return %_Call(AsyncFunctionNext, вызывает сразу твой await в async, вот почему он сразу и тригерится
Gregory
То есть по сути async await это не тоже самое, что promise?
Gregory
еще одна вещь, которая меня жутко удивляет в async await
почему он перехватывает ошибки через try cache?
Gregory
Gregory
Эта функция, которая через секунду выкидывает исключение
Gregory
Serhii
Async функция это промис
Gregory
ну так то да, но вот мой пример
Serhii
Но тебя интересует именно await
Gregory
да, суть в том, что ошибка здесь не должна перехватываться
Serhii
И что он формирует дерево калбеков через генератор
Gregory
так как она возникает через 1 секунду
НО он перехватывает
Serhii
Ну все что в блоке кеч вызывается вторым параметром исполнения промиса
Gregory
Serhii
Суть в отсутствии .then и формировании new Query(success, reject)
Gregory
Если использовать промисы, то ошибка остается не перехваченой
Serhii
Потому что есть разница с этим в .then(success, error).catch(error)
Serhii
Второй ловит только родительский режект а первый - и внутренний
Serhii
Как то так
Gregory
Потому что есть разница с этим в .then(success, error).catch(error)
немного не понял...
Но что хотел сказать, ошибка вываливается в консоль и никто, ни then catch ни try catch ее не поймали.
НО используя await она ловится отлично
И если, как я 100 раз читал, await это обертка над promice, тогда почему они работают по разному?
Serhii
Какая разница между Promise(success, reject) и Promise().then(success).catch(reject) ?
Serhii
Попробуй повалить ошибок в функциях success
Serhii
Но не в самом промисе
Serhii
И увидишь
Maksim
Maksim
скинь код в песочнице
Gregory
лан, сейчас в обычной скину.
Maksim
а какая разница? ты же нодовое api не юзаешь
Serhii
Вся магия кроется в разнице
Serhii
Какая разница между Promise(success, reject) и Promise().then(success).catch(reject) ?
Serhii
Потому что catch() метод Promise и не отловит throw в самом then, только throw в Promise()
Serhii
А все await это уже then
Gregory
https://jsfiddle.net/bvskkxjw/1/