Как я могу поставить задачу в очередь задач без использования функции setTimeout? - PullRequest
0 голосов
/ 04 октября 2019

Во-первых, я сожалею, что написал вопрос, переведя его с помощью Google переводчика, потому что мой плохой английский.

Сначала посмотрите на код ниже.

const log1 = () => {
    setTimeout(() => console.log(1), 0)
}

const log2 = () => {
    console.log(2)
}

const start = () => {
    log1()
    log2()
}

Если я запускаюФункция запуска в приведенном выше коде. Я знаю, что функция, которая выполняет console.log(1), ставится в очередь в очередь задач, и console.log(2) выполняется сначала в стеке вызовов, что приводит к следующему:

2
1

Iхотите изменить порядок выполнения так, чтобы сначала выполнялась console.log(1) функции log1 и отображались следующие результаты.

1
2

Но я предполагаю, что внутренняя реализация функций log1 и log2 не может бытьмодифицирована. (Для внешней библиотеки и т. Д.)

Поэтому я изменил ее следующим образом.

const start = () => {
    log1()
    setTimeout(log2, 0)
}

Я изменил функцию запуска, как описано выше, чтобы получить желаемый результат, но я нехочу перегрузить функцию setTimeout.

Я хотел бы узнать более хороший способ поставить задачу в очередь задач без использования функции setTimeout.

Если вы знаете хороший способ, пожалуйста, помогите!

Спасибо!

...