簡體   English   中英

將回應返回2個諾言

[英]Returning the responses to 2 promises

我正在使用Contenful來管理內容,並使用帶有node.js的API來呈現內容。 但是,(並且我懷疑這個問題可能適用於正在發出2個請求並且需要返回合並結果的任何地方),但是我如何一起返回2個Promise的數據?

我有2個收藏集,分別是Page和News。

我想返回特定的頁面和所有新聞,並且我可以分別完成這兩個操作,完全沒有問題。

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拒絕時拒絕,繼續拒絕原因)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM