스포츠 부문의 모든 팀을 반환하려고합니다. API는 다음과 같습니다.
를 호출 /api/divs/ID
하면 반환됩니다.
.divInfo
).teams
)예를 들어 Division 1
( 55720
)로 전화를 걸어 모든 지역과 몇 개의 팀을 제공했습니다.
어느 부서에서든 하위 부서를 포함하여 해당 부서의 전체 팀 목록을 모 으려고합니다 .
내 코드는 다음과 같습니다.
async getSubteams(id) {
let vm = this
return await this.$axios.get(`/api/div/${id}`).then(r => {
let additionalTeams = r.data.divInfo.map(subDivision => vm.getSubteams(subDivision.DivIDDivision))
return r.data.teams.concat(...additionalTeams)
})
}
const teams = await this.getSubteams(this.id)
이것은 팀 개체 목록의 예상 출력을 제공하지 않습니다. 대신 약속과 팀의 혼합입니다.
나는 이것이 잘못 프로그래밍되었다는 것을 알고 있지만, 약속없이 정상적인 목록을 얻는 동안 어떻게 이것의 비 동시성을 유지할 수 있습니까 (즉, 한 번에 여러 API 호출이 발생 함).
나는 약속을 반환하고를 사용하는 것에 대해 논의 Promises.all(...)
했지만 이것이 최선의 접근 방식이 아닌 것 같습니다.
Promise.all
열쇠였습니다.
async getSubteams(id) {
let vm = this
return await this.$axios.get(`/api/div/${id}`).then(async r => {
let additionalTeams = await Promise.all(r.data.divInfo.map(subDivision => {
return vm.getSubteams(subDivision.DivIDDivision)
}))
return r.data.teams.concat(...additionalTeams)
})
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다