es6-promise相关内容

为什么javascript ES6 Promises 在解析后继续执行?

据我所知,promise 是可以 resolve() 或 reject() 的东西,但我惊讶地发现 promise 中的代码在调用 resolve 或 reject 后继续执行. 我认为 resolve 或 reject 是 exit 或 return 的异步友好版本,这将停止所有立即函数执行. 有人可以解释为什么以下示例有时会在解析调用后显示 console.log 背后的想法: ..
发布时间:2021-12-29 10:16:34 前端开发

有没有办法检测被拒绝的承诺是否未处理?

假设我有一个函数 foo 返回一个 promise.有没有办法调用该函数,并且只有在未处理拒绝的情况下才可以选择 Promise.prototype.catch 调用结果?我想要一个适用于 node.js 和浏览器的解决方案.例如: const fooResult = foo();//将 fooResult 传递到其他地方,在那里 fooResult 可能会被 catch 捕获catchIfUn ..
发布时间:2021-12-29 10:16:04 前端开发

一旦所有内部并发承诺都已解决或被拒绝,则解决承诺

我正在寻找类似于 Promise.all 的东西,即使在一个或多个承诺拒绝或抛出错误的情况下,它也将继续同时解决承诺.每个请求不依赖于另一个请求. 接近我想要的 - 请看评论 function fetchRequest(请求){返回新的承诺(函数(解决,拒绝){获取(请求).then(功能(响应){返回 response.text();}).then(函数(responseXML){//在 ..
发布时间:2021-12-29 10:15:56 前端开发

如果你用另一个 promise 来解决一个 promise 会发生什么?

ECMAScript 6.0 规范对解析另一个 Promise 的 Promise 有什么看法?它是否应该通过将 then 附加到可以解决这个问题的 Promise 来采用另一个 Promise 的状态? 我在 Chrome 中尝试了这个片段,这就是我得到的结果,它似乎只是用 Promise2 解析了 Promise1 就可以了吗? >Promise1 = new Promise(func ..
发布时间:2021-12-29 10:15:48 前端开发

为什么 JavaScript Promise 然后处理程序在其他代码之后运行?

我只是想提高我对 JavaScript Promises 工作原理的理解.我创造了以下情况: LOG 'FOO'运行回调记录“回调"记录“酒吧" 期望所有功能立即完成(我的意思是它们不会花费过多/未知的时间来完成,您将使用异步操作来完成)以便上述顺序操作将按该顺序进行. 你可以这样写: function foo(cb) {//记录'FOO'console.log('foo');//运行 ..
发布时间:2021-12-29 10:14:58 前端开发

promise.all 是如何工作的?

我开始挖掘 Promise 并发现了有趣的 Promise.all. MDN 中说 Promise.all(iterable) 方法返回一个承诺,当 iterable 参数中的所有承诺都已解决时,该承诺就会解决. 这基本上意味着设置承诺在参数列表中的所有承诺都已解决之后解决.我试图实现它.我只是承诺 ajax 调用. var get = function(url) {返回新的承 ..
发布时间:2021-12-29 10:14:35 前端开发

当 Promise.all() 拒绝时停止其他承诺

虽然关于 Promise.all 的所有问题都集中在 如何等待所有承诺,但我想走另一条路——当任何承诺失败时,停止其他人,甚至停止整个脚本. 这里有一个简短的例子来说明: const promise1 = new Promise((resolve, reject) => {setTimeout(resolve, 1000, 'resolve1');}).then(a => { cons ..
发布时间:2021-12-29 10:14:14 前端开发

获得第一个兑现的承诺

如果我有两个promise A和B,只有一个会成功,我怎么才能得到一个成功的呢?我正在寻找类似于 Promise.race 的东西,但它只会返回满足的第一个承诺.我正在使用来自 ES6 的承诺. 解决方案 反转promise的极性,然后可以使用Promise.all,因为它在第一个被拒绝的promise上拒绝,即反转后对应于第一个实现的承诺: const invert = p =>n ..
发布时间:2021-12-29 10:13:32 前端开发

如何调试 javascript 承诺?

我想了解如何调试基于 promise 的异步代码.Promises 是指基于 ECMAScript 6 的 promises,调试是指使用内置的 chrome 或 firefox 调试器. 我遇到的问题是 - 发生错误时,无论我如何“拒绝"它,我似乎都无法获得堆栈跟踪. 我试过这些: console.log(new Error('发生错误'));throw new Error('抛出 ..
发布时间:2021-12-29 10:10:53 前端开发

Node.js:何时使用承诺与回调

我正在更新一些较旧的 Node.js 代码.在此过程中,我正在设计新模块以使用旧代码.我现在发现,与我第一次写这篇文章时相比,我更多地依赖于使用 ES6 承诺而不是回调.所以现在我混合了一些返回承诺的函数和一些回调函数——这很乏味.我认为最终应该重构以使用承诺.但在此之前... 在哪些情况下更喜欢使用 Promise 而在哪些情况下更喜欢回调? 是否有任何类型的情况回调可以比承诺更好地 ..
发布时间:2021-12-29 10:05:15 其他开发

如何使用 node.js 中的本机承诺在全局范围内处理异常?

我知道如何处理承诺中的特定错误但我有时有如下所示的代码片段: somePromise.then(function(response){otherAPI(JSON.parse(response));}); 有时,当 JSON.parse throw s 时,我得到无效的 JSON 导致无提示失败.一般来说,我必须记住为我的代码中的每个承诺添加一个 .catch 处理程序,如果我不这样做,我将无法 ..
发布时间:2021-12-29 10:03:39 其他开发

Promise/A+ 规范第 2.2.4 条背后的意图是什么?

promise/a+ 规范的第 2.2.4 条说: onFulfilled 或 onRejected 在执行前不能被调用上下文堆栈仅包含平台代码. 然后在注释中指出: 这里的“平台代码"是指引擎、环境和promise实现代码.在实践中,这一要求确保onFulfilled 和 onRejected 异步执行,在事件之后调用 then 的循环,并使用新的堆栈. 这样做的用意是为 ..
发布时间:2021-12-29 09:59:58 前端开发