143得票6回答
如何返回多个Promise并在执行其他操作之前等待它们全部完成

我有一个循环,它调用一个异步执行的方法。这个循环可能会多次调用这个方法。在这个循环之后,我有另一个循环,只有当所有异步操作都完成时才需要执行。 所以这里是我的需求:for (i = 0; i < 5; i++) { doSomeAsyncStuff(); } for (...

8得票1回答
Promises相对于CPS和Continuation Functor/Monad有哪些优势?

ES6 Promises ES6 Promises是有限状态机,因此需要复杂的实现。除此之外,Promise / A +规范还存在许多问题: 重载的 then (map/chain) 递归展开/ then-able同化 自动抬升 多个订阅者(多播) 急切评估 多播分发和急切评估是ES...

11得票5回答
JS ES6 Promise Chaining

我正在学习如何使用 Promises,但是在理解串联方面遇到了困难。我假设使用这段代码,两个 Promise 都会运行。然后当我调用 test.then() 时,它应该知道 test 已经 resolved 并将 resolve 数据传递给 then()。 一旦该函数完成,它就会进入下一个 ...

10得票1回答
ES6 Promise.all() 错误处理 - 是否需要使用 .settle()?

假设我有一个Promise.all()来处理两个 Promise。如果其中一个 Promise 产生了错误,但是另一个 Promise 被解决了,我希望能够根据 Promise.all() 解决后的情况来处理错误。 ES6 Promises 缺少 settle 方法,我认为这应该是有一个很好...

17得票1回答
在VS Code中调试Promise调用堆栈

有没有一种方法可以在vscode中调试nodeJS Promises时获取调用堆栈?我看到this GitHub issue支持异步调用堆栈,但似乎只适用于原始的JS回调函数。 现在当我在断点上暂停时,调用堆栈很小,尽管我知道这个函数是从另一个(或几个)函数调用的。 我正在运行node v...

158得票17回答
取消一个纯ECMAScript 6 Promise链。

有没有一种方法可以清除JavaScript Promise实例的 .then 方法? 我在QUnit之上编写了一个JavaScript测试框架。该框架通过在Promise中运行每个测试来同步运行它们。(对于这段代码块的长度,我很抱歉。我尽力进行了注释,所以感觉不那么乏味。) /* Prom...

59得票6回答
如何在数组的forEach循环中使用Promise来填充一个对象

我正在一个数组上运行一个forEach循环,并进行两个返回promise的调用,我想填充一个对象,比如说this.options,然后对其进行其他操作。现在如果我使用以下代码示例,我会遇到异步问题,而且我会首先进入then函数。$.when.apply($, someArray.map(fun...

8得票3回答
Promise.then(a, b)和Promise.then(a).catch(b)是相同的吗?

两者之间有什么区别? myPromise.then(a, b) myPromise.then(a).catch(b) 这两个 JavaScript 表达式是否总是产生相同的结果,不考虑 myPromise 的内容和状态以及函数 a 和 b 的实现情况? 除了代码可读性以外,是否存在某...

8得票3回答
Electron:dialog.showOpenDialog没有返回Promise?

我希望能从所渲染的脚本中展示一个打开对话框。 不同来源给出了相互矛盾的信息,但是据我所知,在https://electronjs.org/docs/api/dialog的文档中,建议我使用以下代码: const dialog = require('electron').remote.dia...

14得票2回答
使用redux-form和Fetch API进行服务器验证

如何使用redux-form和Fetch API进行服务器端验证? 文档中提供了“提交验证”演示,建议使用从onSubmit函数返回的promise来进行服务器端验证。但是我应该将该promise放在哪里呢? 据我所知,onSubmit函数应该是我的操作。 <form onSubmit...