AFAIK meteorjs使用node-fibers,但他们的github页面表明它是服务器端&仅限v8(或不是吗?)。
meteorjs如何实现非阻塞,同步,如 api 客户端?
是否与Chrome以外的其他浏览器兼容?
如果有人能指出我对光纤的纯JS实现,或者解释它们是如何工作的(他们有自己的事件循环吗?),我将非常感激。
任何指向工作客户端光纤实现的github项目的链接也将受到赞赏!
毕竟是XMAS:)
答案 0 :(得分:2)
node-fibers项目是Node.js的仅Windows 服务器端扩展,用C ++实现。您可能永远不会在Web浏览器中看到它。
答案 1 :(得分:2)
JavaScript是单线程的。如果要实现非阻塞I / O,则必须实现节点样式的消息循环和异步I / O库。默认情况下,所有客户端I / O都是同步的,不过Meteor和其他库都有回调的条件。
是的,Meteor的客户端实现在Chrome以外的多个浏览器中运行。
(并非所有人都庆祝圣诞节,但如果你这样做,那就是最好的祝福)
答案 2 :(得分:0)
答案 3 :(得分:0)
我相信在服务器端,由于MiniMongo,一切都与Meteor完全同步。因此,不需要异步回调,或者更准确地说,Meteor不需要等待来自服务器的update
回调继续执行下一条指令,这要归功于同步响应的MiniMongo。
我还没有通过查看源代码来验证我刚刚说过的所有内容,但我无法想象它的工作原理会有什么不同。
修改强>
还没有深入研究源代码,但是this section of the Meteor's guide似乎与我的想法一致。