问题标签 [promise.all]
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 - 延迟承诺
所以,我有两个承诺,我想在屏幕上打印,中间有 3 秒的延迟。我将如何实现它。下面是代码。
javascript - 自定义函数未在 Promise.all() 中异步运行
我正在尝试使用 Promise.all 异步运行一个函数 4 次(使用不同的参数)。此代码段运行,但它只会按顺序同步运行每个“loopGridValidate”函数。我已经用这个https://www.javascripttutorial.net/es6/javascript-promise-all/教程中的逻辑替换了 loopGridValidate 函数,并且 Promise.all 返回了预期的内容。我不确定我错过了什么......循环函数是异步的,所有内容都在 promise all 中正确设置(我还将新的 promise 拆分为 'const p1 = new Promise' 并具有相同的效果下面的代码片段)
这是一个小提琴,展示了我所说的正在发生的事情的基本示例。如果单击您将在控制台中看到的按钮,则函数将同步运行,而不是异步运行(i 值将被混合而不是按顺序)https://jsfiddle.net/tap16fbo/
javascript - 是否有任何方法可以使用 Promise.all 中断承诺数组的并行执行
我有并行线程,并且想要在其中一个引发错误时中断所有未完成的线程。但似乎所有其他线程都在继续执行。
我得到日志
因此,当第一次调用“worker”函数(i=0)时抛出错误时,它会被函数“test”中的“catch”块捕获。然后和错误被抛出到上层函数,但其他 9 个工人仍然继续工作。有什么办法可以打破它们吗?我只看到一种方法-在函数“test”中的catch“block”中调用process.exit,但它会中断所有程序而不是当前函数。
javascript - 嵌套的 promise.all
我正在尝试改善一些性能问题,为此我尝试执行以下操作
我有一个promises数组,我想在 promises 数组的所有 promises 完成后返回结果。
顺便说一句,processA、processB 和 processC 的结果也很重要,因为在 // 其他逻辑我在某个地方使用它们。
所以,我想在 promise.all 中添加 promiseResults
那么,我的方式是否好用,并且还使用嵌套的 promise.all是一种好方法吗?因为我做了一些使用嵌套promise.all的最佳实践的搜索,但我找不到任何东西所以,你提供什么?
javascript - 在 jasmine 测试中处理 Promise.all 中的拒绝
我正在尝试在 jasmine 中测试一个包含 Promise.all 的函数(TypeScript,但我认为我在 JS 中会遇到同样的问题) - 我想确保我正在适当地处理拒绝:
然后我的测试是这样的,我在其中模拟 foo 中的一个承诺失败:
问题是,我从 Jasmine 收到“未处理的拒绝:抛出 loremipsum”错误 - 即使我相信我正在使用 foo 中的 catch() 处理拒绝?我不应该对 Promise.all 中的每个承诺都需要单独的捕获,不是吗?我手动测试了它,它确实捕捉到了拒绝并表现得恰到好处,所以我不确定在 Jasmine 中测试它的最佳方法。谢谢!
arrays - Typescript - 具有不同返回值的动态承诺数组
谁能帮我解决这段代码有什么问题?Promise.all
我在底部找不到合适的类型来拨打电话。它也尝试过Promise.all<Services[], PullRequests[]>(ops)
,但PullRequests[]
不能是可选的......
node.js - Node JS Promise.all 异步更新 JSON 对象数组中的属性
我是 JS 和 Node.js 的新手,我正在开发一个使用 Azure Translator API 翻译 webVTT 字幕文件的个人项目 - 为此,我使用 node-webvtt npm 包来解析/编译 webVTT 文件。解析操作提供了一个 JSON 对象,其中包含一个包含数千个提示的数组,如下所示:
为了翻译“文本”属性,我使用了Microsoft 在 GitHub 上提供的代码示例,并将以下更改应用于 translateText 函数:
- 我创建了一个返回“提示”对象的承诺(不仅是翻译的文本)
- 我将“提示”对象作为输入和要翻译的语言
然后我按照这里提供的代码,使用 Promise.all 和 item.map 的组合通过我的异步 translateText 函数翻译所有提示文本
这是我的 index.js 的代码 - 它可以工作,但我不太喜欢这段代码,我相信它可以优化并且看起来更好。
例如,我正在寻找一种仅使用 Promises 并获得您的建议以优化此代码的方法
promise - promise.all 等待时间(对我来说真的很棘手)
首先,这是虚拟的承诺功能:
方案 1 如下:
预期:将在 3 * 3 = 9 秒后打印 'success' 'success' 'success'
实际:是的,我的想法
方案 2 如下:
预期:将在 3 * 1 = 3 秒后打印 ['success', 'success', 'success']
实际:不......它会立即打印!结果是正确的,但为什么不花时间?!?!
这对我来说很棘手......为什么?谁能解释一下……???
javascript - 我正在尝试在 spark ar 中为我的游戏制作评分功能,但 promise.all 似乎不起作用
我对编程很陌生,我正在尝试使用脚本来修补桥接技术。我不知道为什么这不起作用,这是我的代码:
这是来自控制台日志的错误:
改用PatchesModule.outputs.getScalar
!@爱马仕运行时
此 API 已弃用,请升级到最新的 SDK 版本。信息:
请帮助我,谢谢
javascript - 如何处理promise.all拒绝三个promise中的一个promise?
我有一个独特的情况,其中两个 Promise 在 Promise.all 中一起运行。但其中一个承诺需要很长时间,因此我没有得到任何结果。除了一个,其他承诺正在得到解决。我想用错误消息拒绝需要很长时间(例如:如果超过 60 秒)的承诺,以便我可以从 Promise.all 获得响应。
例如::
this.client2.getSimulationPrices 需要花费大量时间来解决,因此 Promise.all 没有给我任何结果。我想在 60 秒内拒绝这个,这样我就可以得到 Promise.all 的响应。
请建议如何处理这种情况?