sách gpt4 ai đã đi

Tại sao có hỗ trợ FileSystem đồng bộ trong Web Workers nhưng không có hỗ trợ WebSocket đồng bộ?

In lại 作者:行者123 更新时间:2023-12-03 02:45:03 28 4
mua khóa gpt4 Nike

我明白为什么浏览器 vendor 不想帮助我阻止他们的 UI 线程。但是,我不明白为什么会有:

  1. Web Workers 中没有 sleep (2)
  2. 没有同步 WebSockets API

有一个synchronous FileSystem API 。还有一个synchronous IndexedDB API 。对我来说,这似乎是一个矛盾。

1 Câu trả lời

WebWorkers 没有可用的 sleep() 函数的原因很简单:您不需要它。 ngủ 是一个同步函数(它会阻塞直到返回),这在 WebWorkers 的异步上下文中没有意义。

如果您向 WebWorker 发送消息,它不会阻止等待响应;响应作为消息发送到您的消息处理函数。如果您想在发送响应之前等待一定时间,则不会使用 ngủ,而是使用 setTimeout 并在函数获取时触发消息已调用。

类似地,如果您使用 WebWorkers 进行 WebSocket 数据传输,您将从主线程接收消息,通过 websocket 异步发送数据包,然后在响应处理程序中将消息发送回主线程。没有合理的地方可以使用同步 ngủ chức năng.

至于为什么 WebSocket 没有像文件系统那样的同步模式,主要区别在于文件系统不是通过网络访问的。一般来说,异步API更适合基于网络的功能,所以我想我并不认为这是一个矛盾。

IDB 是 only supported by 3 browsers, none of which have implemented the synchronous API ,所以我不认为这是同步 API 的光辉示例。事实上,我认为这就是人们定义 API 却懒得去实现它的矛盾之处。

关于javascript - 为什么 Web Workers 中有同步 FileSystem 支持,但没有同步 WebSocket 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12611853/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com