Anonymous
которую ты отказываешься читать)
Vladimir
Пример кода
Vladimir
console.log(1)
Vladimir
Promise.resolve().then(() => console.log(2))
Vladimir
console.log(3)
Vladimir
Что выведет?
Anonymous
так
Anonymous
1 3 2
Vladimir
Да, потому что колбэк выполняется асинхронно
Vladimir
Всегда, в любой VM
Vladimir
По спеке
Anonymous
ну тут энв и не ждет ничго
Anonymous
фактически тут надо экзекьюшн контекст второй сразу вызвать
Anonymous
после первого
Vladimir
Да
Vladimir
Это и называется - асинхронность
Anonymous
это синхронная задача так-то
Дима
Сложна
Anonymous
фактически в энве
Anonymous
положить в стек, взять из стека
Anonymous
где тут асинхронщина?
Ohar
фифо может быть синхронным
Как ты это себе представляешь?
Sergey
где тут асинхронщина?
в том, что исполнение не линейное
Anonymous
линейное. и порядок мы знаем
Anonymous
в энве все синхронно
Sergey
линейное исполнение, строка за строкой == синхронщина не линейное == асинхронщина
Anonymous
пока нет пользовательского ввода или таймаутов
Vladimir
Чем отличается от setTimeout качественно?
Anonymous
или чего-то такого от энва
Anonymous
качественно тем, что setTimeout за пределами жс движка и надо отложить выполнение
Vladimir
С точки зрения разработчика нет разницы
Anonymous
да, это так
Vladimir
И то и то асинхронно
Vladimir
Не важно, почему
Vladimir
Речь именно об этом
Vladimir
Это асинхронность, заложенная в спеку
Anonymous
в спеке написано, что это может быть асинхронным
Anonymous
с т.з. разраба энва это может быть важно
Vladimir
Там написано что тот пример работает именно так
Vladimir
Асинхронно - всегда
Sergey
надо сбилдить v8 и посмотреть как там будет работать
Sergey
console.log(1)
Sergey
Promise.resolve().then(() => console.log(2))
Sergey
console.log(3)
Anonymous
нет, там такого не написано. там написано, что есть пендинг джобы
Anonymous
кеннот колл лог оф андефайнд
Sergey
пф
Sergey
прокинуть одну функцию
Vladimir
То есть ты хочешь сказать что порядок исполнения в этом примеры не регламентирован спекой?
Anonymous
порядок регламентируется колл стеком. энв может вообще тупо заигнорить следующий эвент луп
Vladimir
Ты уже бредишь
Vladimir
Энв не причём, эвент луп не причем
Vladimir
Речь о голом js
Anonymous
ну смотри в8 и чакра синхронно выполняют код и заканчивают на этом свою работу
Anonymous
далее есть речь о джобах
Anonymous
и твой энв не обязан быть синхронным
Anonymous
пока нет ввода-вывода
Anonymous
ты можешь всю дальнейшую работу не откладывать
Vitaliy
Ну и хуй с тобой, что могу сказать
ого, у нас новые нормы поведения в чатике! 8)
Vladimir
Она уже отложена
Anonymous
и запускать новый экзекьюшн контекст
Vladimir
function a() { Promise.resolve().then(() => a()) } a(); setTimeout(() => console.log(1), 10); Вот тут ведь функция в setTimeout никогда не выполнится?
Vladimir
Работа выполняется либо синхронно сразу, либо асинхронно потом
Anonymous
сеттаймаутов тоже нет в движках
Vladimir
IO не при чем
Дима
setTimeout меньше ~ 12 ms не имеет смысла, кстати
Vladimir
почему?
Самому интересно, но так происходит, в ноде
Vladimir
Не в ноде
Anonymous
есть пример энва синхронного
Anonymous
просто тупо прогнать 1 раз жс файл и умереть
Anonymous
без эвент лупа
Vladimir
Да, но промисы в нем все равно будут асинхронно работать
Sergey
блин
Sergey
ща пойду собирать v8
Vladimir
циклится.
но функция в .then же должна выполняться асинхронно, это не while (true)
Sergey
там есть примеры с запуском файлов