这与使用主干的客户端或服务器端应用程序相关。我正在尝试创建一个验证函数,对 MongoDB 或一些 REST 调用(取决于环境)进行唯一性检查。这两个调用本质上都是异步的;但是,我认为我实际上需要在这里阻止它以进行验证。如果我不返回任何内容,验证函数将假定验证已通过。
我的代码目前在服务器端看起来像这样:
isUnique: function (key) {
var dfdFindOne = this.findOne({key: this.get(key)}),
dfd = new Deferred();
dfdFindOne.done(function (err, result) {
console.log(result);
dfd.resolve(true);
});
return dfd;
};
......这里有一些东西......
我觉得我可以在返回之前在这里做一些等到完成的功能......也许不是。我希望骨干提供回调函数或其他东西或接受某种延迟类型的东西。
validate: function() {
var result = undefined;
if(!this.isUnique(key).done(function(){
result = "AHHH not unique!";
});
return result;
}
一个可能的解决方案可能是强制 mongodb 的本机节点客户端同步调用事物。我想我可以对休息电话做同样的事情......但这可能是一个糟糕的解决方案。