나는 다음과 같은 코드에 약간의 도움을 받고 싶습니다 : 나는 DataAssociation 객체에 DataAssociationIDS의 배열을 변환하려고 위의 코드에서각도 4 체인 HTTP GET 요청 (약속)
fillDataAssociationsArray(DataAssociationIDS: string[]) {
const promise = new Promise((resolve, reject) => {
for (const id of DataAssociationIDS) {
this.api.getDataAssociationByID(id).toPromise().then(
data => {
this.DataAssociations.push(data.body.entities.DATAASSOCIATIONS[0]);
});
}
resolve();
});
return promise;}
, 그리고보다 DataObjects []의 로컬 배열로 푸시합니다. 배열 (매개 변수)에서 ID를 가진 각 DataObject를 가져오고 백엔드에서 올바른 DataObject를 리턴하는 API에 get 요청을 수행하는 것보다.
public getDataAssociationByID(dataAssociationID: string) {
return this.http.get<DataAssociationInterface>(this.apiURL + 'typeOne=DATAASSOCIATIONS&id=' + dataAssociationID,
{ observe: 'response' });}
나는 각 요청은 이전 요청의 결과에 따라 어디에 체인에 일부 HTTP 내 API를, 의 요청을 얻을합니다. 그래서 내 생각은 이러한 요청에 대한 약속을하고 then() 메서드를 firstRequest(). then (SecondRequest(). then (...))과 같이 사용하는 것입니다.
() 다음에
ngOnInit() {
this.fillDataAssociationsArray(this.extractDataAssociationIdsFromActivities()).then(
() => console.log(this.DataAssociations)
//() => console.log(this.DataAssociations[0].languages.DUT.name)
);}
First result Second line result
이 첫 행하려고 내 - 판화 정확한 결과 로컬 배열 그러나, I 번째 행하려고하면 (주석) 어느 정의되지 않은 항목의 이름을 출력합니까 ??? 그리고 다음 요청을 체인화 할 때 분명히 undefined를 읽을 수 없습니다.
당신의 선생님이 영웅입니다! if 문은 문제를 해결했으며 모든 호출이 실행되기 전에 실제로 Promise가 해결되었습니다. –
굉장! 도와 줄 수있어서 기뻐 :) –