ฉันมีอินเทอร์เฟซ REST API ซึ่งทำให้ฉันได้รับข้อมูลบางอย่างระดับแรกเท่านั้น
เช่นฉันต้องการรวบรวมกลุ่ม ทุกกลุ่มสามารถมีกลุ่มย่อยได้ ตัวอย่างเช่น "กลุ่ม 1" มีกลุ่มย่อย "กลุ่ม A" และ "กลุ่ม B" "กลุ่ม A" มีกลุ่มย่อย "GroupX" และอื่นๆ
แต่ API จะให้กลุ่มระดับแรกแก่ฉันสำหรับชื่อกลุ่มเท่านั้น ดังนั้นฉันจึงส่ง "กลุ่ม 1" ไปยัง API และส่งคืน "กลุ่ม A" และ "กลุ่ม B" หากต้องการรับกลุ่มย่อยของกลุ่ม A ฉันต้องเรียก API อีกครั้ง แต่ไม่รู้ว่าจะวนซ้ำอีกกี่ครั้ง
เลยคิดจะใช้การเรียกซ้ำแต่ก็ไม่ได้มาไกล
จนถึงรหัสของฉัน:
getGroupChildren(group:string){ return this restService.getGroupChildren(group)}
getGroups():Promise<any>{
let collection:string[] = [];
return this.getGroupChildren("Group A").then((result)=> {
if(result.data.length !==0){
return this.getGroupChildren(data[0].groupName);
}
});
}
ตอนนี้จะส่งคืนกลุ่มย่อยแรกขององค์ประกอบแรกให้ฉันเท่านั้น
ฉันจะบรรลุผลสำเร็จได้อย่างไร โดยจะพบทุก Supgroup ไม่ว่าจะกี่กลุ่มก็ตาม อาจจะดีที่จะใช้ Observables?
นี่คือโครงสร้างตัวอย่างของการเรียก API หนึ่งครั้ง:
{ "groupName" : "Group_1", "children" : ["Group_A", "Group_B"]}
then
callback ของgetGroupChildren
แล้วดูว่าจะเกิดอะไรขึ้นหลังจากการวนซ้ำครั้งที่ 1 หรือไม่ มูลค่าที่คุณได้รับ/ส่งต่อสำหรับdata[0].groupName
? - person palaѕн   schedule 19.03.2018async
แทนที่จะสัญญาแบบดิบๆ เพื่อทำให้ง่ายขึ้น วิธีแก้ไขที่แท้จริงไม่ชัดเจนเนื่องจากคำถามมีข้อมูลไม่เพียงพอ ฟังก์ชั่นที่ควรส่งคืนคืออะไรกันแน่? เรียกว่า getGroups แต่ส่งคืนสตริงเดียว - person Estus Flask   schedule 19.03.2018