异步 JavaScript 中微任务队列和回调队列有什么区别?

PHPz
Lepaskan: 2023-08-24 09:33:02
ke hadapan
512 orang telah melayarinya

异步 JavaScript 中微任务队列和回调队列有什么区别?

在异步 JavaScript 中,有两种方法来调度任务 -微任务队列回调队列。 JavaScript 引擎对这两个队列的处理方式不同。

微任务队列

微任务队列是在当前任务之后执行的任务队列。微任务队列由 JavaScript 引擎处理,然后再移至回调队列中的下一个任务。

示例

以下是微任务队列如何工作的示例 -

   Examples 
Salin selepas log masuk

在上面的示例中,“setTimeout”回调被添加到回调队列中。 “Promise.resolve”被添加到微任务队列中。 JavaScript 引擎将首先执行微任务队列中的所有任务,然后再进入回调队列。

因此,上面代码的输出将是(在控制台中) -

start end promise resolve setTimeout
Salin selepas log masuk

回调队列

回调队列是在当前任务之后执行的任务队列。回调队列由 JavaScript 引擎在执行完微任务队列中的所有任务后处理。

示例

以下是回调队列如何工作的示例-

   Examples 
Salin selepas log masuk

在上面的示例中,‘setTimeout’回调被添加到回调队列中。 JavaScript 引擎在执行完当前任务中的所有代码后将执行“setTimeout”回调。

因此,上面代码的输出将是(在控制台中) -

start end setTimeout
Salin selepas log masuk

微任务队列和回调队列之间的区别

微任务队列和回调队列之间的一些区别是 -

  • Microtask队列由 JavaScript 引擎处理,然后再移至回调队列中的下一个任务。回调队列由JavaScript引擎在执行完微任务队列中的所有任务后处理。

  • Microtask队列当前任务完成后进行处理。回调队列在微任务队列为空后进行处理。

  • 微任务队列在单独的事件循环中进行处理。回调队列在同一个事件循环中进行处理。

  • 微任务队列的优点

    微任务队列的一些优点回调队列上的微任务队列是 -

    • 微任务队列在单独的事件循环中处理,这意味着如果主线程被阻塞,微任务队列仍将

    • 微任务队列在当前任务完成后进行处理,这意味着任何依赖于当前任务的代码都可以添加到微任务队列中,并且它将被处理。当前任务完成后立即执行。

    • 微任务队列比回调队列具有更高的优先级,这意味着如果两个队列被安排同时执行,微任务队列将首先执行。

    回调队列的优点

    回调队列相对于微任务队列的优点之一是回调队列与主线程在同一事件循环中进行处理。这意味着如果主线程被阻塞,回调队列将不会被处理。

    结论

    在本教程中,我们研究了微任务队列和回调队列之间的区别在异步 JavaScript 中。我们还研究了每个队列的优点。

    Atas ialah kandungan terperinci 异步 JavaScript 中微任务队列和回调队列有什么区别?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    sumber:tutorialspoint.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!