有一個場景。一個人隸屬多個團隊,每個團隊下有多個頻道。
要查詢出所有的團隊和頻道的對應關系。
需要通過個人資訊先查詢到團隊資訊。團隊不止一個。
然后在通過團隊資訊查詢到頻道資訊。
并行發送查詢頻道的請求之后,無法把回傳的頻道資料和查詢用的團隊資訊關聯在一起。
也就是回傳的response不知道是哪個團隊的id查詢出來的?
這怎么辦?
舉例:
for(var i = 0; i < teams.length; i++)
{
//url中包含團隊的id
fetch(url)
.then((response)=>{
//這里可以獲取到url,response.url
if (response.ok)
{
return response.json();
}
})
.then((profile)=>{
alert(JSON.stringify(profile));
//在這里,如何獲取到原始的url???????url中包含團隊的id
});
}
uj5u.com熱心網友回復:
用法不對呀。你不可能在for回圈下面直接去.then;fetch回傳結果.then;你可以將所有fetch請求打包進一個陣列,然后通過陣列遍歷獲取。比如:
const teams = [ '399167803', '399167750' ]
const results = teams.map(team => fetch('https://bbs.csdn.net/topics/' + team))
teams.forEach((team, index) => {
results[ index ].then(res => {
console.log('url => ', res.url, ';team=>', team)
})
})
uj5u.com熱心網友回復:
這樣也是可以的。所以,這要看你所謂的團隊id是get方式還是post方式發送的了。get方法的,id應該就在url中。而且看你代碼。應該一個url中只包括了一個teams中的元素。所以,也可以通過results的索引去teams中反查。因為它倆里面元素集合的順序和長度是一樣的
results.forEach((result, index) => {
result.then(res => {
console.log('url => ', res.url, ';team=>', teams[index])
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/276095.html
標籤:JavaScript
上一篇:請教一下js中的問題
下一篇:vue-video-player
