【发布时间】:2014-07-04 05:47:03
【问题描述】:
我查看了此处发布的示例:YDN-DB with multiple deferred,其中包含一些非常接近我想要的代码,但并不完全。
我想知道在事务中嵌套延迟查询是否安全?例如:
loadWorkOrders: function() {
var params = {
userId: 1,
status: Status.Allocated
};
var allOrders = null;
return workOrderHttpService.getWorkOrders(params).then(function(orders) {
allOrders = orders.data;
return ydndatabase.open();
}).then(function(db){
return db.run(function(runDb){
allOrders.forEach(function(workOrder){
runDb.count(Store.WorkOrder, ydn.db.KeyRange.only(workOrder.id)).then(function(count) {
if(count == 0) {
return runDb.put(Store.WorkOrder, workOrder);
} else {
return workOrder;
}
});
});
}, [Store.WorkOrder], TransactionType.ReadWrite)
});
}
编辑:我已经编辑了代码以显示它之前是如何对 http 服务进行异步调用的
【问题讨论】:
-
Don't create a deferred 告诉你你的
req承诺何时解决,你已经有一个承诺!!! -
啊,好点,是的,谢谢。 (这仍然是非常快速地破解在一起的原型代码)但是,问题仍然存在。
标签: javascript deferred ydn-db