根据 the Angular docs on $q , $q.when() 期望传递一个 promise /值。
但我只是遇到了别人的代码,其中调用它时没有传递任何参数。这是我所看到的简化版本:
var modal = false;
if (modalOpen) {
return $q.when()
}
modalOpen = true;
modal = newModal({
template: opts.template,
});
modal.result.finally(function(){
modalOpen = false;
});
}
最佳答案
方法应该同步返回或异步返回以保持一致。如果一个方法有时同步返回并且有时仍然想保持事实它已经解析透明 - 它返回一个空的已解析 promise 。拥有有时返回 promise 有时同步返回 promise 的 API 是一个 recipe for trouble .
使用 $q.when
是在 Angular 中获得空的 resolved promise 的最简单方法。
关于javascript - 你为什么要执行 $q.when() 而不给它传递一个 promise /值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648367/