如何使用Sails.js同步调用水系函数。我试过了
var data = Model.findOne({ foo : "bar"});和
sync(Model, findOne);
sync.fiber(function(){
var data = Model.findOne({ foo : "bar"});
});他们都不为我工作。
怎样才是正确的方法?
发布于 2014-04-01 21:01:03
水线方法是异步的,简单明了的。没有任何命令会使他们不这样做。您会发现访问外部数据源(数据库、HTTP等)的许多Node方法都是这样的。
如果您需要以一种更同步的方式链接它们,可以使用像异步这样的包。
发布于 2014-04-01 21:07:49
我不确定这在输水线上是可能的。我几乎可以肯定这不是我的意图。
Model.findOne({ foo : "bar"}, function(err, result){
var data = result;
});以上情况会更好.不要对抗nodejs的异步特性。以后才会疼。
发布于 2014-12-08 11:10:54
很抱歉,这个答案已经太晚了,您可能已经找到了解决方案,但是对于将来的引用,您可能需要更新/config/globals.js并设置_: true,从而将其设置为全局的/config/bootstrap.js,然后使用以下内容编辑/config/bootstrap.js
global.sync = require("synchronize");
_.each(sails.models,function(model){
_.map(model,function(attrValue,attrKey){
if(typeof attrValue=="function"){
model[attrKey+"Sync"]=sync(attrValue);
}
});
});从现在开始,您可以使用任何模型函数的同步版本,方法是在像下面这样的users.findSync({fname:'Mostafa'})函数后面加上"Sync“。
https://stackoverflow.com/questions/22796454
复制相似问题