gpt4 book ai didi

web-worker - 如果我在 web worker 仍在使用时继续使用 postMessage() 会发生什么?

转载 作者:行者123 更新时间:2023-12-04 18:36:00 24 4
gpt4 key购买 nike

我对网络 worker 很陌生,但我的一个问题是,考虑到以下情况:

  • 我生成了一个网络 worker 并设置了 onmessage Worker 中的处理程序
  • 然后我使用 postMessage()在主线程中触发 Worker 的 onmessage
  • 我立即调用另一个 postMessage而最后 onmessage任务仍在进行中

  • 然后,我想知道 worker 是如何处理的?

    最佳答案

    消息保存在队列中。 worker 有,就像主线程,一个消息队列 - 从事件(例如点击)启动任务,setTimeoutpostMessage .以下是它的工作原理:

    image description

    例如,这同样适用于主线程以及 Node.js。这就是javascript的工作原理。

    因此,对于您的回答 - 您发送给 Worker 的所有消息都将按照您处理它们的顺序逐一处理。

    这是 jsFiddle as a test that my claim is true .您会看到,虽然所有消息都是一次发送的,但它们是按顺序处理的。

    关于web-worker - 如果我在 web worker 仍在使用时继续使用 postMessage() 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34519751/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com