gpt4 book ai didi

javascript - 在不使用 Promise.all 和 Promise.resolve 的情况下在 JS 中的 promise 之间传递中间数据

转载 作者:行者123 更新时间:2023-11-29 10:04:56 25 4
gpt4 key购买 nike

<分区>

我是一个 JS 菜鸟,但到目前为止,我真的很喜欢 ES6/React/Immutable 功能来进行函数式编程和 FRP,尤其是 promise api。我特别喜欢链接 .then 的模式,例如 somePromiseGenerator().then(...).then(...).catch(...)。当异步调用流完全线性时,这是完美的。但是,通常我想将结果从这条链的顶端传递到末端。

我一直在使用的次优模式如下所示:

somePromiseGenrator()
.then(r => {
const inter = makeSomeIntermediateResults(r);
const newPromise = makeNewPromise(r);

return Promise.all([newPromise, Promise.resolve(inter)]);
})
.then(r => {
handleR0andR1(r[0], r[1]);
})

例如,当我从 ElasticSearch 获取数据并想用 SQL 或 Neo4J 中的内容补充它或调用辅助 API 时,就会发生这种情况。

使用 Promise.all 尤其是 Promise.resolve 似乎是在浪费精力。有没有更好的方法来完成这项工作?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com