gpt4 book ai didi

javascript - 了解 Javascript 异步 block 和回调

转载 作者:行者123 更新时间:2023-11-28 00:01:48 25 4
gpt4 key购买 nike

doA( function1(){
doC();

doD( function2(){
doF();
} )

doE();
} );

doB();

假设 doA() 和 doD() 是异步调用,我们有以下序列:A->B-C->D->E->F

  1. 调用 A,返回并将 function1 发送到队列,
  2. 调用 B,
  3. 不再执行 -> 执行队列中的内容 -> 调用 C,
  4. 调用 D,返回并将 function2 发送到队列,
  5. 调用 E,
  6. 6-不再执行 -> 调用 F。

我的推理真的正确吗?我完全错了吗?

这个问题来自于阅读 Kyle Simpson 的“你不懂 Javascript”。

最佳答案

看起来这本书做得很好,你已经很好地理解了基础知识:-)

一些小问题可能会让你的推理更加精确:

  1. 假设 doA() 和 doD() 是异步调用” - 假设 doAdoB 是 ( “异步”)函数异步调用作为参数传递给它们的回调函数。我们可能会进一步限制它们仅调用一次相应的回调(以避免混淆)。

  2. 将 function1 发送到队列” - 它可能不会立即执行此操作。这就是后台处理的全部要点,只有当相应的任务(由 doA()doD() 启动)完成时,回调才会排队。一个简单的例子是超时。如果等待多个异步回调,则可能会以任意顺序调用它们,具体取决于它们的任务花费的时间。
    同样,当没有更多内容要执行时,它可能需要等待队列中出现某些内容,并且只要没有任何内容就空闲。

  3. 队列中有什么 -> 调用 C” - 事实上,function1 在队列中,然后调用 doC() 和其他。您不应该跳过此步骤:-) 与调用 doF() 相同。

关于javascript - 了解 Javascript 异步 block 和回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730272/

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