问题标签 [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.

0 投票
1 回答
423 浏览

javascript - 试图理解 ES6 Promises:依次执行三个 setInterval

为了理解 ES6 Promises 我试图解决这个问题陈述:

有 3 个 div:div.reddiv.greendiv.blue。它们必须一个接一个地出现,每个都通过一个setInterval迭代的不透明度增量(异步任务)。

所以目标是顺序执行 3 个异步任务。

我已经编写了以下代码,这进入了拒绝部分并给出了TypeError : undefined is not a function {stack: (...), message: "undefined is not a function"}

0 投票
1 回答
3562 浏览

jquery - es6-promise.js polyfill(在 html5rocks,MDN 中提到)不起作用

我有一个使用承诺的 JS 代码。它在 ES6 承诺支持的浏览器中正常工作

如 MDN 中提到的,比 chrome32、firefox26、任何版本的 IE、promise 都不支持的旧版本

我已经应用了这里提到的 polyfill(由 MDN、HTML5Rocks 建议)https://github.com/jakearchibald/es6-promise

Polyfill 文件:“ http://es6-promises.s3.amazonaws.com/es6-promise-2.0.0.min.js

我可以看到 polyfill 脚本正在执行,因为编译器到达断点

但我得到一个错误Promise not defined,当我使用

这是我完整的网页html代码。这是一个简单的示例,您可以在旧浏览器中使用 browserstack 对其进行测试。

我确信错误在我这边,因为到处都建议使用 polyfill。

代码直播:http ://sagiavinash.com/learn/es6promise/2/

0 投票
1 回答
1084 浏览

javascript - 链接包含嵌套 AJAX 调用的 JavaScript Promise

我希望用 JavaScript Promises 替换我现有的一些代码,我只是想确认我没有做错(或者也许有更好的方法)。我正在使用es6-promise库。

我已经更新了三个函数以使用 JavaScript Promises(以前是嵌套的、回调的混乱)。这些函数实际上应该具有双重模式,即我可以像常规函数一样使用它们并让它们返回结果,或者我可以将它们链接在一起。

if就是检查数据是否缓存在localStorage/sessionStorage中,如果是则函数只返回结果。但是,在我不确定这些值是否已被缓存的情况下(例如第一次运行脚本),我计划将它们链接起来,然后让每个后续函数将其前一个函数的结果保存到 localStorage/sessionStorage (因此promise链在最后一行)。决赛then让我有机会从func_3.

根据我运行的测试,一切似乎都正常,但我只是想知道这是否是最好的方法?以及如何处理可能在列出的 3 个函数中的一个或多个上发生的 AJAX 错误?

注意:我的AjaxRequest函数也使用相同的 Promise 机制,并在成功时“解决”完整的 XHR,并在失败/错误时“拒绝”相同的完整 XHR。

编辑

在@Bergi 的提示之后,我将代码更新为如下所示(它也同样有效):

0 投票
1 回答
207 浏览

node.js - 在 Promise 中引发的异常未显示

我正在开发一个严重依赖 Promises 的节点模块。出于某种原因,当应在 Promise 代码中引发异常时(例如“未定义不是函数”),异常消息不会显示在控制台中 - 承诺链似乎在没有任何反馈的情况下停止,我能做的只是猜猜是什么原因造成的。如何强制 Node 显示所有异常?

0 投票
2 回答
254 浏览

javascript - 使用原生 JavaScript Promise 链式异步操作

我已经进行了两个异步操作,然后进行了最终onResultonFault定义。如何链接两个异步操作getConnectionselect然后最后调用onResultonFault

编辑需要帮助来承诺以下序列。

0 投票
9 回答
133959 浏览

javascript - 如何使用带有原生 ES6 Promises 的 Typescript

我是 Typescript 的完全初学者,我想知道是否可以在 Typescript 中使用 ES6 Promise,以及我必须做些什么才能让它们工作。我正在运行节点 0.11.14 并且在编译过程中出现错误“找不到名称'Promise'”

0 投票
3 回答
13736 浏览

javascript - Promise.resolve().then vs setImmediate vs nextTick

NodeJS 0.11 以及 io.js 和 Node 0.12 分支都带有原生承诺。

原生 Promise有一个.then方法,它总是在未来的事件循环周期中执行。

到目前为止setImmediate,自从我从 nextTick 切换以来,我一直在使用将事情排队到事件循环的下一次迭代:

因为我们现在有了一种新的方法来做到这一点:

我应该使用哪个?另外 -在事件循环之前或之后运行的代码是否Promise.resolve.then表现得像setImmediate或像nextTick

0 投票
19 回答
203175 浏览

javascript - 如何判断一个对象是否是 Promise?

无论是 ES6 Promise 还是 bluebird Promise、Q Promise 等。

如何测试给定对象是否是 Promise?

0 投票
1 回答
1760 浏览

javascript - 正确使用 ES6 生成器和分页

我一直在考虑这个问题,我似乎无法想出一个合理的解决方案来解决这个问题。问题陈述很简单 - 编写一个生成器,它将延迟分页远程数据集。为了简化事情,这是我希望我的图书馆的用户看到的理想情况:

我似乎无法让发电机工作。我在想这样的逻辑会起作用,但我不知道如何实现它。

我确定我在这里想出了点问题,但我似乎找不到任何人使用这样的生成器的例子(大多数人将它们与静态数据一起使用,或者人们在做类似的事情async(function*(){...}),这并不完全是什么我想做)。这里的重要部分是我希望最终用户能够使用上述数据。

-文斯

0 投票
2 回答
21860 浏览

javascript - Promise.defer() 浏览器支持

我正在寻找一种方法来创建将在当前范围之外解决的延迟对象。我喜欢延迟对象,正如我Promise.defer()在 Chrome 38 中看到的那样返回延迟对象。

但在最新的 Firefox 34Promise.defer中,Safari 8.0 中也未定义。

所以我现在不能Promise.defer到处使用。未来状态如何?它会在其他浏览器中实现还是会被弃用?