我有一个角度的单页应用程序。通过上下文服务可以使用全局可用状态。
此上下文服务具有get和set方法。 get方法是一个承诺,因为一旦页面加载但尚未通过API获取上下文。
一旦设置了上下文,就解决了promise,我可以通过get方法访问我的上下文。
但是我该如何处理set方法呢?可以使用set方法更改上下文。但是由于已经解决了promise,get方法将返回旧的上下文。
在解决后,可以“替换”承诺在随后的调用中返回的数据吗?
谢谢!
答案 0 :(得分:1)
get方法是一个承诺......
这没有多大意义。我假设返回承诺。
但是我该如何处理set方法呢?可以使用set方法更改上下文。但是由于已经解决了promise,get方法将返回旧的上下文。
代码不应该像这样保留和重用旧的承诺。例如,你建议:
getThePromise
它不应该这样做。它应该返回到.one
,如果它稍后再想要该值(如果它想要一个新值)。
是否可以替代'承诺在解决后在后来的调用中返回的数据?
没有。承诺合同的一个重要部分是承诺只会被解决一次,而结算价值不会改变。
如果没有看到您的API,很难说,但如果API给您的印象,您可以调用" get"然后重复使用生成的承诺,最好更改API,使其不再给人留下印象。但同样,如果没有API细节,很难说是否属于这种情况或建议做出改变。