我使用 Angular $q
创建一个延迟对象,如下所示:
var defer = $q.defer();
var promise = defer.promise;
setTimeout(function(defer){
defer.resolve("nothing");
},2000,defer);
promise.then(function(){
//code here
});
所以promise中的代码会延迟2秒,但是我想知道如何在defer解析后延迟代码执行,这样我就可以像这样延迟代码执行:
promise.delay(1000);
当我从 $http.post() 得到 promise 时
var promise = $http.post()...;
promise.then(function(){
// code
});
由于 Promise 已解决,因此如何延迟代码执行。
最佳答案
您应该使用$timeout
而不是 setTimeout
,它也具有已经返回 promise 的好处。
要仅在初始 Promise 解决后才开始延迟,只需将其放入 then
回调中即可:
promise.then(function(){
return $timeout(2000)
}).then(function(){
//code here
});
关于javascript - 如何在延迟解决后延迟执行 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113218/