所以这可能是微不足道的,但我正在做一些概念证明,并试图拒绝 promise 链中间的 promise ,但我没有得到我期望的结果。
app.controller('MainCtrl', function($scope, $q) {
var def = $q.defer();
def.promise
.then(testPromiseReject())
.then(
function(){
console.log("SUCCESS")
},
function(){
console.log("FAIL")
});
def.resolve();
function testPromiseReject(action)
{
return $q.reject()
}
});
我认为我正在创建一个最初解决的 promise ,但在第一个 then
中,我有一个函数试图拒绝 promise 链的其余部分。上面的代码将 "SUCCESS"
打印到控制台。为什么它不拒绝链的其余部分?
最佳答案
该行有问题...
.then(testPromiseReject())
它只需要删除()
,这样它就不会立即执行...
.then(testPromiseReject)
fiddle ... http://jsfiddle.net/5LVEE/1/
关于angularjs - 拒绝链中的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764752/