【发布时间】:2015-11-14 12:46:50
【问题描述】:
我想让对象请求一个 JavaScript 承诺,但我不希望它们创建单独的承诺。我想要实现的逻辑如下 - 检查一个承诺是否处于未决状态,如果没有,则创建一个新的承诺。这可能吗?根据文档,我无法检查承诺的状态,我只能在完成后处理它,但我不想为每个承诺请求调用处理程序,如果一个承诺的回调可以,我不想运行多个承诺响应所有过去的请求...
我试图以这种方式解决的问题是从外部服务器获取数据并在接收到数据后通过事件将其广播到多个对象。
【问题讨论】:
-
如果您更详细地描述您尝试解决的实际问题(包括您的两个操作的代码)而不是描述您尝试自己的解决方案(请参阅XY Problem),我们可以向您展示如何正确使用 Promise 来处理它。
-
@jfriend00 有很多用例适用这种模式并且不是 XY 问题:例如 - 多位代码执行相同的请求,而您不想开始新的请求每一个,但也不想缓存这些值,因为它可能会改变。
-
@BenjaminGruenbaum - 你猜测了 OP 想要什么,你只能为你的猜测提供一个通用的解决方案。如果 OP 提供了他们的实际问题和实际代码的示例,我们不必准确猜测他们正在尝试做什么,并且可以提供更具体的答案。我建议 OP 如何使他们的问题成为一个更好的问题,这将引起更具体的答案,并且不涉及猜测他们想要什么。你可能猜对了,我真的不确定。但是,任何需要猜测的问题都可能会更好。
-
那么,你只是想要一个使用承诺的缓存吗?那么,第一个请求数据的人创建了实际的请求,而其他人只是使用相同的结果?
-
是的,这正是我想要的 :)
标签: javascript promise