var xyzdeffered = $q.defer();
service1.getServiceDetail1($routeParams.id).then(function(promise) {
xyzdeffered.resolve(promise);
});
var abcdeffered = $q.defer();
service2.getServiceDetail2($routeParams.id).then(function(promise) {
abcdeffered.resolve(promise);
});
$q.all([ xyzdeffered, abcdeffered ]).then(function(data) {
$scope.variable = data;
});
我希望q.all中的变量只有在前两个promise得到解决后才能填充。但不幸的是,服务调用本身并没有返回数据,控制转移到q.all。我觉得这很奇怪,因为根据文档,只有当您的promise返回200个响应并得到解决时,才会调用q.all。我检查了对网络调用的分析,并发出了一些警报,以查看代码的顺序,发现q.all警报是第一个弹出的警报,然后其他promise得到解决。为什么一个简单的q.all实现不起作用,这真的让我很生气。。任何帮助都将不胜感激。
例如,您可以同步运行多个sq-lite查询,只需将查询数组(您可以传递任何内容)作为参数传递到此方法的调用中。
function methodThatChainsPromises(args,tx) {
var deferred = $q.defer();
var chain = args.map(function(arg) {
var innerDeferred = $q.defer();
tx.executeSql(arg,[], function(){
console.log("Success Query");
innerDeferred.resolve(true);
}, function(){
console.log("Error Query");
innerDeferred.reject();
});
return innerDeferred.promise;
});
$q.all(chain).then(
function(results) {
deferred.resolve(true)
console.log("deffered resollve"+JSON.stringify(results));
}, function(errors) {
deferred.reject(errors);
console.log("deffered rejected");
});
return deferred.promise;
}
$q.all([ xyzdeffered.promise, abcdeffered.promise ])
为什么不在第一次promise时直接调用$q.all?
$q.all([
service1.getServiceDetail1($routeParams.id),
service2.getServiceDetail2($routeParams.id)
]).then(function(data) {
//Array of result [resultOfgetServiceDetails1, resultOfgetServiceDetails2]
$scope.variable = data;
});
为了添加另一个信息,我有一个tasks表,它当然需要引用来跟踪分配给谁,我还有一个列跟踪创建任务的用户。这将分别是和。 虽然有更多的表引用回该键。我可能已经有8个推荐人了。我相信到目前为止我已经把它设计得很好了,但是根据我所提到的,这听起来好吗?
问题内容: 对于Java的处理方式以及涉及到的数字和其他类型的数字,我有些困惑。例如: 输出(也许您应该先猜测一下): 这不能编译是可以预料的,是不同的对象。 令我有些惊讶的是,默认情况下9是an ,并且1)甚至没有编译。请注意,您不能将放入期望使用的方法中,但是在这里它们是相等的。 由于两个相同的原因,这令人惊讶,但似乎更糟。 不足为奇,因为自动装箱到和。 不足为奇,因为不同类中的对象不应该是。
问题内容: 如何运行选择所有非null的MySQL查询?就像 我只需要删除所有内容即可吗? 问题答案: 您必须在每列上明确说明条件,例如
我正在做一个forEach循环,它对Cloudinary进行API调用,我正在用响应数据构建一个数组。 一旦收集到数据,我需要将其发送到其他API。 在发送数据之前,我如何等待promise得到解决并收集数据? 这是我的代码:
每个人都知道饼干桶三角桩接龙游戏。你拿一个钉子,跳过另一个,跳进一个空洞,目标是只剩下一个钉子。 在游戏板对象的代码中,我有一个函数,它改变了你当前用来跳转的peg。为了解决这个问题,我将其连接到一个变量。每次你改变当前的钉住并使用它跳跃时,这算是一次移动。这是一个非常基本的启发式搜索算法,我希望是一个搜索算法:探索所有可能的跳跃可用一个peg。如果没有找到回溯的解决方案,请更新当前的peg并重复
我在汇编时做了一个脑力操翻译(在 使用此代码: 它打印Hello World!没有问题,请注意它几乎拥有您需要的一切:嵌套循环,您可以执行的所有命令(除了)。它仍然工作得非常好。 然而,当使用这段代码时(预期的输出也是Hello World!就像第一段代码一样): 它打印“n|1f14{g”(没有任何seg错误或非法指令)。我摸不着头脑,为什么这个代码不起作用,而另一个代码工作得非常好。我想我已经