0
我有這個代碼的問題進行併發API調用幹:ReactJS和
let tmpContributors = [...this.state.contributors];
for (let i = 0; i < 10; i++) {//10 most active contributors because of performance and github limits
contributorPropertiesPromises.push(axios.get(`${this.state.contributors[i].followers_url}?per_page=100&${API_KEY}`)
.then(res => {
if(res.data.length > 100) {
tmpContributors[i].contributorFollowers = res.data.length;
}
else {
for(let page = 1; page <= 5; page++) {//5 pages because of github limitation - can be done by recursion checking if res.headers.link.includes('rel="next"')
axios.get(`${this.state.contributors[i].followers_url}?page=${page}&per_page=100&${API_KEY}`)
tmpContributors[i].contributorFollowers += res.data.length;
}
}
}))
}
for (let i = 0; i < 10; i++) {//10 most active contributors because of performance and github limits
contributorPropertiesPromises.push(axios.get(`${this.state.contributors[i].repos_url}?per_page=100&${API_KEY}`)
.then(res => {
if(res.data.length > 100) {
tmpContributors[i].contributorRepositories = res.data.length;
}
else {
for(let page = 1; page <= 5; page++) {//5 pages because of github limitation - can be done by recursion checking if res.headers.link.includes('rel="next"')
axios.get(`${this.state.contributors[i].repos_url}?page=${page}&per_page=100&${API_KEY}`)
tmpContributors[i].contributorRepositories += res.data.length;
}
}
}))
}
for (let i = 0; i < 10; i++) {//10 most active contributors because of performance and github limits
contributorPropertiesPromises.push(axios.get(`${this.state.contributors[i].gists_url}?per_page=100&${API_KEY}`)
.then(res => {
if(res.data.length > 100) {
tmpContributors[i].contributorGists = res.data.length;
}
else {
for(let page = 1; page <= 5; page++) {//5 pages because of github limitation - can be done by recursion checking if res.headers.link.includes('rel="next"')
axios.get(`${this.state.contributors[i].gists_url}?page=${page}&per_page=100&${API_KEY}`)
tmpContributors[i].contributorGists += res.data.length;
}
}
}))
}
它的工作原理,但它不是很乾。我試着用兩個參數(例如propertyUrl,contributorProperty)和字符串作爲參數來調用一個函數。不適合我。 你們能幫我解決嗎?
你能與這兩個參數分享您的嘗試......這是最簡單的解決方案,以縮短代碼毫無疑問。 –