在已经解决的承诺中解决新数据

时间:2016-07-13 11:10:27

标签: javascript angularjs promise angular-promise

我有一个角度的单页应用程序。通过上下文服务可以使用全局可用状态。

此上下文服务具有get和set方法。 get方法是一个承诺,因为一旦页面加载但尚未通过API获取上下文。

一旦设置了上下文,就解决了promise,我可以通过get方法访问我的上下文。

但是我该如何处理set方法呢?可以使用set方法更改上下文。但是由于已经解决了promise,get方法将返回旧的上下文。

在解决后,可以“替换”承诺在随后的调用中返回的数据吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

get方法是一个承诺......

这没有多大意义。我假设返回承诺。

  

但是我该如何处理set方法呢?可以使用set方法更改上下文。但是由于已经解决了promise,get方法将返回旧的上下文。

代码不应该像这样保留和重用旧的承诺。例如,你建议:

getThePromise

它不应该这样做。它应该返回到.one,如果它稍后再想要该值(如果它想要一个新值)。

  

是否可以替代'承诺在解决后在后来的调用中返回的数据?

没有。承诺合同的一个重要部分是承诺只会被解决一次,而结算价值不会改变。

如果没有看到您的API,很难说,但如果API给您的印象,您可以调用" get"然后重复使用生成的承诺,最好更改API,使其不再给人留下印象。但同样,如果没有API细节,很难说是否属于这种情况或建议做出改变。