问题标签 [promise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 使用带有承诺的 jQuery 加载
我仍在努力解决deferred
问题,所以考虑到这一点,我对如何执行以下操作有疑问。
我和我的团队有 3 个单独.load()
的方法,每个方法都获取一个特定的模板并将其附加到同一个容器中。如您所想,每次加载所需的时间不同,因此当内容加载时,它以“阶梯式”方式加载(1,然后 2,然后 3)。我想使用deferred
对象并等到它们全部完成,然后同时附加它们以删除“阶梯”动作。
所有三个调用都类似于上面的调用。
我怎样才能做到这一点?
c++ - 如何反转 set_value() 并“停用”承诺?
我在这里有一个关于同步的总 n00b 问题。我有一个'writer'线程,它在每次迭代时为一个promise分配一个不同的值'p'。我需要'reader'线程等待这个值的shared_futures然后处理它们,我的问题是我如何使用future/promise来确保reader线程在执行他们的处理任务之前等待'p'的新更新每次迭代?非常感谢。
javascript - JavaScript 中的 Deferred、Promise 和 Future 有什么区别?
延期、承诺和期货之间有什么区别?
这三个背后是否有普遍认可的理论?
javascript - 在 jQuery 延迟对象中设置依赖项的简写是什么?
jQuery 延迟对象是否有任何简写来设置依赖关系,即“当我完成时,那件事也完成了吗?” 下面感觉很麻烦:
我喜欢类似的东西b.alsoResolves(a)
。我查看了文档,但似乎找不到任何合适的东西。有没有比上述方法更好的方法来创建延迟对象之间的依赖关系?
python - 在 Python 中设计异步 API
(注意:这个问题严格来说是关于 API 的设计,而不是关于如何实现它;即我只关心我的 API 的客户端在这里看到了什么,而不是我必须做什么才能使其工作。)
简单来说:我想知道 Python 中明确的未来(又名承诺,又名延迟,又名任务 - 名称因框架而异)的已建立模式 - 如果有的话。以下是更详细的描述。
考虑一个简单的 Python API,如下所示:
这是一个同步版本 - 如果线路尚不可用,它将阻塞。现在假设我想提供一个相应的异步(非阻塞)版本,它允许注册一个回调,以便在操作完成后调用。例如,一个简单的版本可能如下所示:
现在,在其他语言和框架中,这些 API 通常存在现有的强制或至少是完善的模式。例如,在版本 4 之前的 .NET 中,通常会提供一对BeginReadLine
/EndReadLine
方法,并使用 stockIAsyncResult
接口来注册回调并传递结果值。在 .NET 4+ 中,使用System.Threading.Tasks
, 以启用所有任务组合运算符(WhenAll
等),并与 C# 5.0async
功能挂钩。
再举一个例子,在 JavaScript 中,标准库中没有什么可以涵盖这一点,但 jQuery 已经普及了现在单独指定的“延迟承诺”接口。因此,如果我要在 JS 中编写 async readLine
,我会命名它,并在返回值上readLineAsync
实现方法。then
Python 领域的既定模式(如果有的话)是什么?查看标准库,我看到几个提供异步 API 的模块,但它们之间没有一致的模式,也没有像“任务”或“承诺”的标准化协议。也许有一些模式可以从流行的第三方库中派生出来?
我还在 Twisted 中看到了(在这种情况下经常提到的)Deferred类,但它似乎针对通用的 Promise API 进行了过度设计,而是适应了该库的特定需求。它看起来不像是我可以轻松克隆一个接口(而不依赖于它们)的东西,这样如果客户在他的应用程序中同时使用这两个库,我们的 Promise 就可以很好地互操作。是否有任何其他流行的库或框架具有为此明确设计的 API,我可以在不直接依赖的情况下复制(并与之互操作)?
javascript - CommonJS 承诺的使用:拒绝与异常
我有一个函数,downloadAsync()
它返回一个 CommonJS 承诺(使用Q)。它可能以两种方式失败:
- 该文件已经可以下载,在这种情况下我们立即知道。
- 下载过程可能会失败,在这种情况下我们会在一段时间后知道。
在情况 (1) 中,由于我在任何异步发生之前就知道,我可以抛出异常。在情况(2)中,我不得不拒绝承诺。
我的问题是,我的 API 是否应该统一并且总是通过拒绝承诺来表示错误?或者我应该为立即确定的无效状态条件抛出异常?再举一个例子,如果用户向我传递了一个无效的参数,那么抛出错误似乎比拒绝承诺更明智。
弄清楚“异常”的承诺拒绝到底是多么的好,也很好;那里的使用是否与异常使用实践一对一地映射,或者我们是否也将其用于非异常故障?
jquery - .resolve() 和 .promise() 有什么区别?
我正在研究 jQuery 的延迟特性。我在互联网上尝试了几个例子。我理解它的概念,但我不明白 和 之间的resolve()
区别promise()
。
resolve()
和 和有什么区别promise()
?
javascript - 在 Windows 上的 Node.js 上使用 Promise
如何在 Windows 上运行的 Node.js 上使用 Promise?对于我的一生,我似乎无法找到任何例子来工作......
例如,这样的事情不起作用:
投入 requires 也无济于事:
我得到的只是:
或者
而且我似乎也无法从最新的 API 中找到承诺......(http://nodejs.org/docs/latest/api/)
我不解。
jquery - jQuery等待所有页面动画完成
我知道如何等到动画完成
并具有多个元素
但是我如何等到页面上的所有元素都完成动画?我宁愿不只是把我正在等待的每一个元素都放进去。