我的主要目标是在计数器触发之前延迟它。
想象一下超时将“n”减为“0”,然后触发一个事件,但每次发生某些事情时,它都可以异步重置为“n”。
我尝试使用带有 $q 的“promises”来实现这一点。
我试图在链接一个全新的延迟中添加带有超时的动态新承诺。
但在实现这个目标之前,我什至无法链接新的承诺。
例子:
var d1 = $q.defer();
var d2 = $q.defer();
d1.promise.then(function(data) {
return 'd1' + data;
});
d2.promise.then(function(data) {
return 'd2' + data;
});
var t = $q.all([d1.promise]);
t.then(function(data) {
console.log(data);
});
$timeout(function()
{
d1.resolve("1000");
}, 1000);
$timeout(function()
{
t.then(function() {
d2.resolve("800");
});
}, 800);
它只输出: ["1000"] 而不是 ["1000", "800"]
到目前为止我的搜索:
stackoverflow没有帮助我。
angular-promise-tracker我无法理解这段代码,它的行为方式正是我所需要的。但它是为别的东西而制作的。