일부 매개 변수를 사용하고 양식의 드롭 다운 메뉴를 채우는 값 목록을 반환하는 Angular2 프로젝트에 서비스가 있습니다. 양식 구성 요소가 초기화 될 때 여러 매개 변수로 동일한 서비스를 여러 번 호출하여 여러 가지 다른 드롭 다운 메뉴를 정의해야합니다. 그러나 모두 호출하면 마지막 호출은 이전 호출을 clobbers라고합니다. 후속 호출이 무시되기 때문일 수 있습니다 또는 이전 페치를 취소합니다.Angular2 함수를 하나씩 차례로 호출합니다.
각각의 호출을 각각의 함수로 나눠 봤지만 첫 번째 완료 이후까지 두 번째 함수가 호출되지 않도록 각 함수를 직렬로 호출해야합니다. 각 함수는 독자적으로 작동하지만 둘 이상을 호출하면 마지막 매개 변수 만 성공하고 첫 번째 매개 변수는 오류와 함께 실패합니다 (마무리 전에 새 매개 변수가 호출 될 때 서비스 자체가 현재 페치를 종료하므로 오류가 발생 함).
this.fetchValueListOne();
this.fetchValueListTwo();
this.fetchValueListThree();
내가 약속이 작품을 만들려고 노력하지만, 다시 밖으로 결과 데이터를 얻을 수없는 나는이 기능에 액세스 할 수 원하는 서비스를 전달하는 데에 꽤 빨리 지옥 범위 지정 및에 감아 다시 - 각 서비스 호출은 세 개의 매개 변수를 취한 다음 구성 요소에 정의되고 양식에서 사용되는 특정 this.valueList [] 변수를 설정합니다.
또한 함수의 목록을 변수로 만든 다음 반복하면서 시도했지만 약속과 마찬가지로 동일한 범위 지정 문제가 발생했습니다.
서비스는 Observable을 반환하고 해당 Observable을 구독하는 함수는 데이터를 검색하여 드롭 다운 값 목록이 바인딩되는 구성 요소의 배열 변수에 할당합니다.
기능은 다음과 같이 : 당신은 수신 된 데이터를
fetchValueListOne() {
this.dataSvc.getValueList('Val-List-One', this.stateSvc.currentContext, this.stateSvc.currentLanguageCode)
.map(response => response.json())
.subscribe(
data => {
this.valListOne = data;
},
err => console.log('Error', err),
() => {
console.log('this.valListOne', this.valListOne);
}
);
}
세 함수는 약속이나 관찰 가능을 반환합니까? –
서비스는 Observable을 구독하고 Observable에 가입 한 함수는 데이터를 검색하여이를 구성 요소의 특정 변수에 지정합니다. –