我查看了此处发布的示例: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 服务进行异步调用的