gpt4 book ai didi

javascript - RTCDataChannel send() 是同步/阻塞调用吗?

转载 作者:行者123 更新时间:2023-11-30 10:15:24 27 4
gpt4 key购买 nike

我正在尝试通过 WebRTC 分块发送文件,我想知道是否可以创建一个回调函数,以便在 RTCDataChannel.send() 完成发送文件的每个 block 后调用文件。

RTCDataChannel.send() 是同步/阻塞调用吗?如果是这样,我的回调可以在 .send() 之后的行上执行。

如果 .send() 是异步/非阻塞的,那么这将变得棘手,因为它看起来不像 .send() 接受回调函数,我想避免使用缓冲区和超时。

最佳答案

send method正在阻塞。然而,它不会等到数据通过网络传输,而只会将数据放在内部缓冲区中,稍后(或与脚本执行并行)可能会从那里发送数据。

未传输的数据量可用bufferedAmount property表示。 ,每次 send() 调用都会同步增加(并且在下一个事件循环轮到之前不会更新)。

因此,您可以使包装器异步,并在当前缓冲的数据“太多”(根据您认为合适的标准)实际调用 send() 之前设置超时。

关于javascript - RTCDataChannel send() 是同步/阻塞调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074961/

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