问题标签 [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.
node.js - 在数组中推送承诺,数组保持为空
我在 promises =[] 数组中推动承诺,但是在承诺中传递承诺时。如果我的代码有任何问题,所有数组都保持为空,它会解析并发送空结果请回答
javascript - 从 Promise.all(...) 返回对象
我正在使用 API 来检索(几个机场的)数据,基于他们的机场代码......
像这样的调用airpt(['JFK','LAX']
会产生一个数组,其结果如下:
这工作正常。但是,我如何从这个函数返回一个(单个)承诺,并将所有数据打包到一个对象中,该对象使用输入codes
作为键?
我知道如何将数组转换为对象:
我知道该怎么做,使用.then(...)
afterPromise.all()
已解决。但是,我希望将重新打包到一个对象中作为异步函数的一部分。
reactjs - 从映射的 url 中获取仅返回一个值
我正在提升状态,以便比较单个 pokemonCard 和点击的卡片之间的 id 并使其只有点击的卡片才会从“捕获”变为“未捕获”。
目前,当我尝试从映射的 url 中获取单个 pokemonCard 时,我目前得到了所有卡片。我想要的基本上是 setPokemonCard(res[0]) 但当然 0 需要是动态的。我怎样才能做到这一点?
警告:Pokedex 和 PokemonCard 目前仍然有我一直在提升的部分代码(如 fetch 和 url),以便我可以看到发生了什么。
javascript - 从 for 循环解决多个承诺 - Promise.all
我在解决来自 for 循环的多个承诺时遇到问题。我对 js 还很陌生,我知道我的代码的这一部分有点乱。我正在尝试从多个来源收集财务数据;yfapi 和我的数据库然后将其清理为我的应用程序将接受的格式。
我需要调用一个在 for 循环内返回承诺的函数。特别是
for(let quote of response)
循环。我正在调用getShares()
它返回一个承诺并将其分配给promise
. 我在 for 循环中记录了 promise 并将其推送到promises
. 日志上写着 promise 。但是,当我promises
在 for 循环之外记录数组时,它是空的。Promise.all(promises) 没有解决,因为 promises 是空的。
我相信我遇到了某种异步问题。我在这里先向您的帮助表示感谢!
这是代码:
和getShares():
javascript - 使用 promise.all() 验证环境
我必须使用 promise.all() 编写 Node.js 脚本来检查环境是否有 docker、git、npm、nvm 和 node.js。对于每个工具,将工具版本写入标准输出。如果某些工具不存在,请写入有关它的 stderr 消息并使用正确的退出代码完成过程。
我的代码如下所示:
我知道在该代码中 promise.all() 没有发挥任何作用,我不熟悉 promise.all() 并且请任何人都可以向我展示如何做到这一点的示例?
javascript - 如何与 react-query 并行处理多个突变
我有一个自定义useMutation
钩子:
我知道设置了突变,但是如果我想做多个并行突变,我将如何使用它?
我试图实现以下内容,但突变在到达Promise.all(mutations
生产线之前执行。
我会通过它作为mutateAsync
回报Promise
,他们不会按顺序触发,但似乎确实如此。
有没有办法处理这个问题,react-query
或者我最好用 axios 执行这个?这样做很有用,react-query
因为当突变成功时我需要使一些查询无效。
javascript - Promise.all 使用嵌套循环中的参数转换结果
下面的循环调用一个异步函数,这里是使用 web3 的智能合约交互。我想通过调用 balanceOf() 来获取令牌数组的余额,然后使用附加的 usdrate 将其转换。对于并行处理,我使用 Promise.all。显然,Promise.all() 下的具有访问权限 [I % currency.length] 的函数不起作用,因为无法保证排序结果。
我的问题是,我怎样才能将金额与附加到代币的正确 usdrate 相乘并仍然使用 Promise.all?
javascript - 如何仅在 Promise.all() 循环完成以及使用 javascript 的 setTimeOut() 之后执行 writeFileSync()?
我正在读取.txt
文件数据并调用第3 方 api以使用 .txt 文件数据作为参数连续获取更多数据。为此,我正在使用延迟 2 秒的函数运行await Promise.all()
withmap()
循环setTimeOut()
,以便第 3 方 API 获得延迟时间并避免捕获错误。
之后,我将其附加/推送到 json 对象数组。之后将整个写入JSON.stringify(data)
文件.json
。我希望一切都按顺序进行。但不幸的是,在调试时,我看到的是writeFileSync
甚至在我不想要的循环完成之前执行。
这是我正在尝试的代码:
我想用通俗的话完全按顺序排列:
- 首先使用 fs.readFileSync 读取所有数据并拆分为数组
- 用axios一一执行3rd party api并将所有数据追加到object obj = {}
- 然后最后将该 json 数据写入 .json 文件并将其保存在根文件夹中。
更新:我现在正在使用这个更新的代码:
因此,在执行整个拆分数组并解决承诺后,它会引发以下错误,而不是执行res = await writeFile(obj).
我不知道为什么会发生。
javascript - 如何在 React 组件中使用 Promise.all 结果?
我需要弄清楚如何从我的公共文件夹中获取多个 GeoJSON 文件并在 React 组件中呈现坐标。这是相关的代码片段:
虽然我可以通过一次 fetch 操作来做到这一点,但我正在努力让它与 Promise.all 一起工作。当我 console.log 数据变量时,我看到了一组未定义的对象。任何帮助将不胜感激!
javascript - 使用动态生成的参数调用带有函数的 promise.all
您好我正在尝试使用不同的参数异步运行相同的函数,但无法弄清楚如何存储函数而不在所有承诺之前运行它们。
这是我正在尝试做的一个简化示例:
在我可以使用 promise.all() 之前,我的函数一直在 for 循环中运行。有谁知道我可以做些什么来让他们全部使用承诺?任何帮助或建议表示赞赏,谢谢!