问题标签 [es6-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.
javascript - Await more than one promise with Javascript / ECMAScript 6
I would like to start a list of promises and execute a callback when all of then are done (without async/await).
javascript - 有没有办法从 Jquery Deferred/Promise 到 When-JS Promise
我想在 jquery ajax 调用返回的承诺之外使用 When-JS 功能。有转换方案吗?
编辑 1
promise - ECMAScript 6 链式 Promise
我正在尝试链接承诺,但第二个没有调用 resolve 函数。我做错了什么?
代码从第二个函数打印“Getting orders”,但不打印“Order 123”:
获取客户 链式 getCustomers 和 getOrders。等待结果接单
更新。我想在返回承诺的链式方法之间插入控制台上的打印。我想这样的事情是不可能的:
javascript - 处理 Promise.all 中的错误
我有一系列要解决的 PromisePromise.all(arrayOfPromises);
我继续继续承诺链。看起来像这样
我想添加一个catch语句来处理单个promise,以防它出错,但是当我尝试时,Promise.all
返回它发现的第一个错误(忽略其余的),然后我无法从promise的其余部分获取数据数组(没有错误)。
我试过做类似..
但这并不能解决。
谢谢!
--
编辑:
下面的答案完全正确,由于其他原因,代码被破坏了。如果有人感兴趣,这是我最终得到的解决方案......
Node Express 服务器链
API 调用(route.async 调用)
.catch
将for放在 thePromise.all
之前.then
似乎已经达到了从原始承诺中捕获任何错误的目的,然后将整个数组返回到下一个.then
谢谢!
javascript - 如何同步确定 JavaScript Promise 的状态?
我有一个纯 JavaScript Promise(内置实现或 poly-fill):
var promise = new Promise(function (resolve, reject) { /* ... */ });
从规范中,Promise 可以是以下之一:
- “解决”和“解决”
- “解决”和“拒绝”
- '待办的'
我有一个用例,我希望同步询问 Promise 并确定:
Promise 解决了吗?
如果是,Promise 解决了吗?
我知道我可以用它#then()
来安排在 Promise 更改状态后异步执行的工作。我不是在问如何做到这一点。
这个问题专门关于Promise 状态的同步询问。我怎样才能做到这一点?
javascript - Promise.allSettled 在 babel ES6 实现中
我babel
用来转换我的node.js@0.10.x
代码,但我坚持承诺。
我需要-type 功能,例如allSettled
,我可以在其中使用。q
bluebird
angular.$q
在 babel 的 core-jsPromise
上,没有allSettled
方法。
目前我正在使用q.allSettled
作为解决方法:
import { allSettled } from 'q';
在 babel polyfill 中有类似的东西吗?或者,哪个是我尝试实现的好算法?
javascript - XHR OnLoad Promise 阻止其他 OnLoad 回调
我正在尝试从我的服务器下载文件,然后在加载的数据上运行 Promises。我的问题是,我的 Promise 似乎出于某种原因阻止了一切:
它开始下载所有文件,一旦下载第一个文件,它会阻止其他文件下载并运行其“onLoad”回调完整承诺链,然后继续下载剩余的文件。新文件完成后,它会阻止其他下载并运行承诺链等。
我的 onload 回调包含以下内容:
我的睡眠功能如下:
在控制台中它返回:
任何帮助,将不胜感激。
我可以理解当“睡眠”运行时下载被阻止,但我不明白为什么它会在继续下载剩余文件之前运行所有“睡眠 1”、“睡眠 2”和“睡眠 3”。
==== 编辑 ====
我使用“promisified” XMLHttpRequest 和 Promise.all() 加载文件。( http://www.html5rocks.com/en/tutorials/es6/promises/ )
最好的,尼古拉斯
javascript - 获取 polyfill,未定义的 PromiseValue
尝试DELETE
使用 fetch polyfill 发出请求,但我得到Uncaught TypeError: Cannot read property 'then' of undefined
了,这是错误promise.then()
这是我的做法:
另一方面,当我/GET
提出请求时,一切正常:
知道我做错了什么吗?
javascript - 使用 Promise 顺序加载
我有一个异步调用数组,我想按顺序调用它们,这意味着我不想在第一个 promise 完成之前调用第二个 promise,依此类推。
在下面的示例中,我有一个循环,它可以动态创建独特的图像并将它们附加到页面上。我希望按顺序附加图像,但由于某种原因,它们并不总是按照创建它们的确切顺序呈现:
我还创建了一个Fiddle来说明这个问题。
我正在使用 bluebird,但我更愿意坚持使用原生 ES6 实现。