Dav*_*ser 12
布拉德,你的B是对的.
Meteor在内部使用纤维.正如你所说,在一个事件服务器中只有一个线程,但是当你做(例如)数据库读取时,Fibers的产生和控制很快就会回到事件循环.所以你的代码看起来像:
doc = MyCollection.findOne(id);
Run Code Online (Sandbox Code Playgroud)
(隐藏的"对事件循环的收益,当文档在这里时回来")而不是
MyCollection.findOne(id, function (err, doc) {
if (err)
handle(err);
process(doc);
});
Run Code Online (Sandbox Code Playgroud)
光纤版本中的错误处理也只使用标准JavaScript异常,而不是每次都需要检查参数.
我认为这会导致更容易阅读业务逻辑的代码样式,这种代码想要采取一系列相互依赖的动作.但是,如果您想使用异步样式,Meteor的大多数同步API可选择进行回调并变为异步.
归档时间: |
|
查看次数: |
1783 次 |
最近记录: |