@yourisus

Асинхронность как ее вычислить?

День добрый, помогите понять, как отличить асинхронную функцию от синхронной?
В какой момент асинхронная функция перестает выпонляться и на смену идет другая?
Слышал про
стек контекстов
и
очередь событий
...
Возможно ли, что если моя тяжелая синхронная функция просто застопорит все окно( сделает просто неактивным клики и прочий интерактив)?
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Kanumowa
Front-end developer
Для начала вам необходимо понять как работает асинхронная событийная модель, можно почитать тут:
асинхронная событийная модель
Движок в браузере хром - v8, лежит в основе node.js, поэтому принцип работы- одинаковый
Везде можно встетить эту картинку Event loop которая отображает прицип работы асинхронной модели, лично мне проще представлять в виде конвеерной ленты, слева вы видите стек накопленных входящих событий, v8 берет их поочереди и выполняет, поэтому если у вас тяжелые вычисления, тогда лучше выполнять их порциями, например часть вычислений -> setTimeout -> часть вычислений -> setTimeout -> часть вычислений, т.к. setTimeout асинхронная функция и когда браузер ее встречает, он кладет ее в стек, и начинает выполнять следующее действие, чтобы понять синхронная эта функция или нет, необходимо читать документацию по конкретно каждой функции, самый простой пример: jquery ajax, в нем есть ключ: async (default: true), можно сделать ajax запрос синхронным, и пока он не выполнится поток будет заблокирован.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект