
Real Human
08.03.2017
14:25:37
какая разница где он задает вопрос

hlomzik
08.03.2017
14:26:09

Real Human
08.03.2017
14:26:38
попробуй ответить на него

Google

hlomzik
08.03.2017
14:28:02
Я не понимаю вопроса, чего уж там) окружение — браузер. При вызове промта и алерта скрипт блокируется. После достижения выхода из функции код больше выполняться не будет.

Real Human
08.03.2017
14:29:06
>Я не понимаю вопроса
ну видишь, сложный вопрос

Subb98
08.03.2017
14:30:59
Поставлю вопрос чуть иначе. Скрипт ругается на "нелегальное состояние" некоторых ретурнов. + функция продолжает работу. Что я делаю не так?
https://gist.github.com/Subb98/e3f2a21fe1664a2cd0c3ef65e4015315
Со значениями тоже ретурнить пробовал.

Real Human
08.03.2017
14:32:15
if(!isFinite(a)) {
cancel("A");
return;
}
тут return не нужен, потому что ты здесь не находишься внутри функции

Subb98
08.03.2017
14:33:42
Гм, понял. То есть, мне нужно останавливать работу уже из cancel.

Real Human
08.03.2017
14:35:49

Alex
08.03.2017
14:36:17
Ага, так половина jquery штук работает

Subb98
08.03.2017
14:36:40
ОК, благодарю за совет, буду пробовать =) Я просто надеялся избежать этого.

Real Human
08.03.2017
14:37:50
https://vk.com/wall-54530371_31

Aleksandr
08.03.2017
15:00:40
Ребят, есть такие, кто clojure либо clojurescript пользуется? Как исправить такую ошибку?
java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be cast to clojure.lang.Atom

Google

Oleg
08.03.2017
15:20:08
А гугл что говорит?

Aleksandr
08.03.2017
15:53:30

Vladimir
08.03.2017
16:00:41

Aleksandr
08.03.2017
16:02:23
О, спасибо

Dmitry
08.03.2017
23:18:36
Привет, есть кто не спит и работал c sequlize?

Vladimir
09.03.2017
00:01:18
крокфорд про пост-жс мир https://www.youtube.com/watch?v=6Fg3Aj9GzNw

Petr
09.03.2017
01:17:58
Привет всем, ктони-будь работал с dropzonejs?
И еще вопрос как сделать чтобы во время работы функции uploadPhotos, $(".uploaded-bar") устанавливался стиль, а не после того как все файл загрузятся?
function sleep(ms) {
ms += new Date().getTime();
while (new Date() < ms) {}
}
function uploadPhotos() {
$(".order-uploaded").css("display", "block");
var percent = 100.0 / myDropzone.files.length;
var totalProgress = 0;
myDropzone.files.forEach(function (item, _, _) {
myDropzone.processFile(item)
totalProgress += percent;
$(".uploaded-bar").css("width", totalProgress + "%");
sleep(1000); //~~~~1 sec delay ~~~~
});
};

Дмитрий
09.03.2017
01:30:25
Жёсткий подход -_+

Oleg
09.03.2017
04:42:33

Azein
09.03.2017
06:14:48
Послушал половину, пока основной посыл что все плохо - object.assign, генераторы, промисы - все было ошибкой...
а функциональное программирование - хорошо, вот

Alexey
09.03.2017
06:20:11
@Azeinpwr чем это промисы плохи?

Azein
09.03.2017
06:20:36
мне норм, а крокфорду не очень

Oleg
09.03.2017
06:21:37
А без асунк\авейтов код на ноде был либо колбекхелом, либо с костылями
Всё потому что процесс вычисления часто предполагает асинхронные запросы к другим частям. И процесс не всегда линеен - например если нужно в зависимости от значения делать или не делать асинхронный запрос - уже была проблема
Боль, страдания, и каждый пытался решать это по своему, куча разных библиотек, подходов и всего такого
Вместо того чтобы решать задачи - решаешь неудобства
А асунк-авейт на промисах...
Но будет интересно если кто-либо предложит более эффективное решение чем асунк-авейты

Google

Alexander
09.03.2017
06:30:48
Генераторы же

Oleg
09.03.2017
06:31:02
Разве генераторы удобнее?

Alexander
09.03.2017
06:31:06
Мб не такое эффективное, но решение
Во внешний код

Azein
09.03.2017
06:31:49
я не сильно шарю, но в генераторных решениях есть вещи вроде const x = yield somePromise

Oleg
09.03.2017
06:31:50
Вообще цепочка была такая - сначала калбекхелы, потом цепочки промисов, потом генераторы, а сейчас асунк-авейты
Вот интересно как можно лучше сделать

Alexander
09.03.2017
06:32:13

Azein
09.03.2017
06:32:16
что работает примерно также как const x = await somePromise

Alexander
09.03.2017
06:32:24
Я не юзал поэтому не знаю точно
Надо тц39 читать

Oleg
09.03.2017
06:36:51
Вообще ещё есть другой, извращенский вариант, но там не будет асинхронности... в первой итерации.
Писать код как обычно, ничего не меняя. Но на самом нижнем уровне детализации этот код будет кидать в стек цепочку вызовов которые нужно исполнить, причем и синхронные и асинхронные. И в конце своего кода вызываешь метод "исполнить" который исполняет всё что ты там накидал в стек. В том числе асинхронно. Причем с таким кодом, теоретически, можно его компилить и не тащить в прод само описание алгоритма, а тащить сразу стек.

andretshurotshka?❄️кде
09.03.2017
06:37:42

Oleg
09.03.2017
06:39:22
В таком варианте не важно что под капотом - функции простые, промисы, генераторы или асунк-авейты. Для машины всё-равно.

andretshurotshka?❄️кде
09.03.2017
06:40:15

Oleg
09.03.2017
06:42:24
При этом с одной стороны код плоский как будто оно исполяется синхронно, с другой стороны используем всю мощь асинхронности без простоек

Олег
09.03.2017
06:53:20
rxjs?)

Alexander
09.03.2017
07:06:15

Oleg
09.03.2017
07:06:51
?

Google

Дмитрий
09.03.2017
07:12:07
Велосипед изобретаете))

Admin
ERROR: S client not available

Дмитрий
09.03.2017
07:16:32
В данном контексте все подразумевают просто обычные генераторы и yield асинхронных операций, по типу co и bluebird.coroutine

Oleg
09.03.2017
07:17:07

andretshurotshka?❄️кде
09.03.2017
07:19:00
виртуальный велосипед

Дмитрий
09.03.2017
07:19:02
Хотя конечно async generators это крайне мощная штука)) Но в подавляющем большинстве типичных задач они как белаз в городе))

Oleg
09.03.2017
07:19:38
?

Alexander
09.03.2017
07:19:59

Oleg
09.03.2017
07:20:35
Я просто сегодня думал как бы мне решить 100500 асинхронных запросов без 100500 слов асунк в начале
Эта штука бы решила

andretshurotshka?❄️кде
09.03.2017
07:20:54

Oleg
09.03.2017
07:21:01
Не не не

Дмитрий
09.03.2017
07:21:07

Oleg
09.03.2017
07:21:08
Там они рассредоточены по коду
И в условиях ещё

Дмитрий
09.03.2017
07:22:31
Да да да. И для калбэка надо какой-нибудь метод ещё добавить, например then

Google

Oleg
09.03.2017
07:22:39
Зачем?

Олег
09.03.2017
07:22:40
ну точно Rx

Дмитрий
09.03.2017
07:22:57
Да тупо промисы в первом приближении
Такая штука может быть заменена на бабель плагин, который просто везде зафигачит await

Oleg
09.03.2017
07:23:04
Оно для решения же этого всего - ровно 0 колбеков... ну за исключением там итераторов аля forEach
Не, промисы это когда оно сразу исполняет
Сразу с ожиданием

Дмитрий
09.03.2017
07:23:34

Oleg
09.03.2017
07:23:49
Плагин да

Дмитрий
09.03.2017
07:23:49
Везде, в препроцессинге, у тебя в коде будет ноль авейтов

Oleg
09.03.2017
07:23:54
Но тогда это новый язык какой-то