我正在使用 AngularJS 的 $q ,当我创建一个承诺并且该承诺已经解决时,它可以再次解决吗?我不知道这是否可能,但如果不可能,有没有办法让我可以一次又一次地解决相同的承诺。我正在考虑使用通知方式,但我不知道是否还有其他方法可以做到这一点。
来自Kozlowski 和 Bacon 的《Mastering Web Application Development with Angularjs》,第 3 章“与后端服务器通信”,“使用 $q 的 Promise API”部分:
一旦被解决或拒绝的承诺就无法改变其状态。
提供承诺结果的机会只有一次。换句话说,不可能:
- 解决被拒绝的承诺
- 以不同的结果解决已经解决的承诺
- 拒绝已解决的承诺
- 使用不同的拒绝原因拒绝被拒绝的承诺
这些规则相当直观。例如,如果在披萨成功送达(并且可能已经被吃掉!)后我们可以被回电并告知披萨订单配送存在问题,那就没有多大意义了。
如果您提供更多代码并且我们可以更好地理解您想要做什么,我们也许可以帮助您。
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |