Запутались со следующими JS приоритетами - PullRequest
0 голосов
/ 05 мая 2020

Во время собеседования у меня возникли эти вопросы, из-за которых я запутался в коде.

  1. Какой из них имеет более высокий приоритет обратного вызова или обещания? setTimeOut?

1 Ответ

3 голосов
/ 05 мая 2020

Эти вопросы относятся к событию l oop. Мне нравится это объяснение от Джейка Арчибальда.

Ответы на вопросы собеседования будут:

  1. Which one has higher priority callback or promise? -> Я думаю, что имел в виду интервьюер является приоритетом микро- и микрозадач. Поскольку обещание само принимает обратные вызовы, это может немного сбивать с толку. Очередь микрозадач имеет более высокий приоритет, чем макрос. Это означает, что событие l oop сначала выполнит все обратные вызовы в очереди микрозадач (также известные как обещания), а затем в макросе. (Это не совсем так, потому что есть также очередь задач рендеринга, которая выполняется сразу после очереди микрозадач), вы можете проверить это видео для получения дополнительной информации .

  2. Are Fetch, setInterval also macro tasks like setTimeOut? -> Fetch использует обещание - так что это микрозадача. setInterval и setTimeout - это макрозадачи.

...