6

AFAIK meteorjs 使用node-fibers,但他们的 github 页面声明它仅是服务器端和 v8(或者不是?)。

  1. meteorjs 是如何在客户端实现非阻塞、同步的api 的

  2. 它是否与chrome以外的其他浏览器兼容?

如果有人能给我指出纤维的纯 JS 实现,或者解释它们是如何工作的(他们有自己的事件循环吗?),我将不胜感激。

任何指向工作客户端光纤实现的 github 项目的链接也将不胜感激!

毕竟是圣诞节 :)

4

4 回答 4

3

node-fibers 项目是Node.js的仅限 Windows 的服务器端扩展,用 C++ 实现。您可能永远不会在网络浏览器中看到它。

于 2012-12-25T01:13:28.167 回答
2

JavaScript 是单线程的。如果要实现非阻塞 I/O,则必须实现节点样式的消息循环和异步 I/O 库。默认情况下,所有客户端 I/O 都是同步的,尽管 Meteor 和其他库提供回调。

是的,Meteor 的客户端实现在 Chrome 之外的多个浏览器上运行。

于 2012-12-25T03:26:06.150 回答
0

尝试 JSCEX ( Windjs )

Wind.js 是一个高级库,它使我们能够使用纯 JavaScript 控制流进行异步编程(以及更多),而无需额外的预编译步骤。

它适用于服务器端和客户端。

于 2013-05-15T12:11:36.877 回答
0

我相信在服务器端,一切都与 Meteor 完全同步,这要归功于 MiniMongo。因此不需要异步回调,或者更准确地说,Meteor 不需要等待update来自服务器的回调继续执行下一条指令,这要归功于 MiniMongo 同步响应。

我还没有通过查看源代码来验证我刚才所说的一切,但我无法想象它会如何以不同的方式工作。

编辑

还没有深入研究源代码,但是Meteor 指南的这一部分似乎朝着我想的方向发展。

于 2016-05-11T17:08:38.523 回答