gpt4 book ai didi

javascript - 返回对 2 个 promise 的响应

转载 作者:行者123 更新时间:2023-11-30 13:57:39 24 4
gpt4 key购买 nike

我正在使用 Contenful 来管理内容,并使用带有 node.js 的 API 来呈现内容。但是,(我怀疑这个问题可能适用于发出 2 个请求并且需要返回组合结果的任何地方)但是我如何一起返回 2 个 promise 的数据?

我有 2 个集合,页面和新闻。

我想返回一个特定的页面和所有新闻,我可以分别做这两个,一点问题都没有。

var pageData;
client.getEntry('Homepage')
.then(function (entry) {

pageData = entry.fields;
res.render('index', {
pageData
});
})

var pageData;
client.getEntries({'content_type':'news'})
.then(function (entries) {

pageData = entries;
res.render('index', {
pageData
});
})

然而,我想要得到的是类似这样的东西:

// Get the page
...

// Get the news items
...

res.render('index', {
pageData,
news
});

我该怎么做?

最佳答案

您可以通过启动它们并使用 Promise.all 来并行执行请求等待他们完成:

Promise.all([
client.getEntry('Homepage'),
client.getEntries({'content_type':'news'})
])
.then(([pageData, news]) => {
// Use `pageData` and `news` here
})
.catch(error => {
// One of them failed, handle/display error
});

Promise.all 等待所有的 promise 被履行,然后将这些分辨率值作为一个数组来履行其 promise,其顺序与它接收到的数组中的条目相同(或拒绝时其中一个 promise 拒绝,传递拒绝原因)。

关于javascript - 返回对 2 个 promise 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921289/

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