ᴡᴇʏʜᴇyʜᴇʏ
и вправду
ᴡᴇʏʜᴇyʜᴇʏ
Спасибо
Дима
Дима
Принцип работы most другой
Anonymous
И как это связано?
Я же говорю. Нет возможности отложить выполнение ф-ии на следующий тик (или несколько тиков)
Дима
И как это связано?
Дима
Эта функция ставит таймер
Дима
Она не занимается планированием
Anonymous
Вот именно, как это связано с мостом, который ты скинул на первоначальный вопрос?)
Дима
Как переводится runAsap с английского? 😐
Дима
Ты упёрся в наличие setTimeout, который вообще предназначен для имплементации delay
Дима
И не замечаешь что я тебе говорю про всё что на скрине кроме этого setTimeout
Anonymous
Нэ понимаю
Дима
Вот и я про что)
Дима
http://mostcore.readthedocs.io/en/latest/api.html#scheduler
Дима
Даже так скорее http://mostcore.readthedocs.io/en/latest/api.html#newscheduler
Дима
Кстати многие вещи лучше выполнять вообще в requestAnimationFrame шедулере, а то и с помощью requestIdleCallback
Дима
fiber реакта кстати работает схожим образом
Anonymous
requestIdleCallback - крутая штука, да
Дима
ric — low priority
raf — normal
setImmediate — high priority
sync — ring 0
Anonymous
Anonymous
https://w3c.github.io/requestidlecallback/#the-requestidlecallback-method
Не вижу ссылку на описание options
Дима
Это я сейчас сформулировал исходя из свойств этих функций исходя из наличия такой технологии как sсheduler
Anonymous
https://github.com/w3c/requestidlecallback/issues/68
Дима
We find ourselves — да, именно так
Дима
Как видишь, от твоего вопроса до приоритизации пара шагов)
Дима
Вполне естественно что автор топика по ссылке — sebmarkbage
Bohdan
Anonymous
Anonymous
Но, видимо, не было спроса, не думали и над предложением
Bohdan
Дима
Дима
И другие 100500 пропозалов которые он регулярно предлагает)
Anonymous
что это обьясняет?
Если ты не пишешь на чистом js и не контролируешь количество последовательных таймаутов (твой код крутиться \ использует другие библиотеки, использующие таймауты), то может выйти, что setTimeout(f, 0) выполниться только через 4 мс
Дима
Он однозначно выполнится позже 4мс
Anonymous
пчму?
Bohdan
Дима
Поэтому существует setImmediate
Anonymous
Дима
пчму?
Потому что так по спеке
Дима
Bohdan
с чего ты взял?
потому что вечный цикл в текущем тике не даст выполниться сеттаймауту никогда. это норм доказательство?
Anonymous
Anonymous
Причем at least - вот это вообще не понятно, какой константой управляется. Я встречал разные иследования, у кого-то выходило и 5.5мс
Anonymous
Bohdan
интересно
Дима
Anonymous
Ну вот да, не понятно какие там факторы)
Дима
да вполне понятно)
Anonymous
М?
Anonymous
Ты про время выполнения тика?
Anonymous
Тип 4ms + время выполнения тика, во время которого колбек был положен в очередь?
Anonymous
А есть ли еще что?
Anonymous
А то из спеки как-то не ясно
Anonymous
> at least
Дима
Старые браузеры имеют минимум 10 мс таймаут, помимо этого влияет категория девайса устройства, активность данного Realm и статус энергопотребления процессора
Anonymous
ясно понятно
Дима
Поэтому есть setImmediate и sync)
Anonymous
Скажи это хрому
Дима
Сказали)
Anonymous
Где?
Дима
Дима
У всех проектов на реакте существует по дефолту
Дима
В свою очередь, я когда понял, что нужна приоритизация, то просто взял нужные полифиллы и не стал забивать себе голову
Anonymous
Надо исходники глянуть, спасибо
Дима
Да, полезно понимать как работает либа setimmediate, но самому её имплементировать при этом не обязательно 🌚
Nikita
Всем привет!
Ищу старших разработчиков и архитекторов Java в ведущий российский IT-интегратор, в подразделение, специализирующееся на внедрении и кастомизации BPM решений.
Работа в офисе в центре Москвы.
Социальный пакет (ДМС, питание, фитнес).
Заработная плата до 250 000 рублей.
Звоните, пишите.
Буду рад откликам и рекомендациям.
Anonymous
Дим, напомни, почему ты из java ушел?
Maxim
подскажите, пожалуйста, в таком вопросе:
собрал список промисов, мне нужно их выполнить по очереди, т.е. не приступать к выполнению следующего пока не зарезолвился предыдущий?
я начал делать примерно так:
let promises = [];
let promise = new Promise(() => { toDoFunction() });
promises.push(promise);
Promise.race(promises).then(() => {
promises.unshift();
}).catch(failure);
но в моей реализации все равно промисы выполняются не дожидаясь завершения предыдущего(
wp0
промис-куитет
Anonymous
(async (tasks, task) => while(task = tasks.pop()) await task())()
Maxim
о спасибо, попробую