요청에서 데이터를 수신하고 표시하기 전에 수신 한 원시 콘텐츠를 add/format/generate/order처럼 처리하려고합니다.JavaScript에서 함수를 전달하는 모범 사례
여기내가 데이터를 수신하는 방식, 그리고 내가 processData
기능
this.httpService.get(`this/is/my/url`, body).then((data) => {
this.processData(data).then((result) => {
this.data = result;
}, (error) => {
this.error = error;
});
}, (error) => {
this.error = error;
});
참고로 전송하는 방법 processData
기능은 약속 함수를 호출해야 할 수도 있습니다.
는 내가 processData
기능을 쓸 수있는 두 가지 방법을 참조하십시오
첫 번째 방법
function processData(data) {
return new Promise((resolve, reject) => {
step1();
function step1() {
this.myService.yolo(data).then({
//...
step2();
}, (error) => {
reject(error);
});
}
function step2() {
this.myService.foo(data).then({
//...
step3();
}, (error) => {
reject(error);
});
}
function step3() {
this.myService.bar(data).then({
//...
step4();
}, (error) => {
reject(error);
});
}
function step4() {
//...
resolve(data);
}
});
}
두 번째 방법을
두 번째 방법은 좀 더 논리적 인 느낌function processData(data) {
step1().then((result) => {
step2().then((result) => {
step3().then((result) => {
step4();
return data;
}, (error) => {
reject(error);
});
}, (error) => {
reject(error);
});
}, (error) => {
reject(error);
});
function step1() {
//...
}
function step2() {
//...
}
function step3() {
//...
}
function step4() {
//...
}
}
, 당신 때문에 돈 무슨 일이 일어나는지 이해하려면 step
함수 내용을 볼 필요가 있지만 표기법을 찾으십시오. 너무 혼란스러워!
10 단계에서 읽을 수 없습니다.
그래서 나는 그 일을하는 좋은 방법이 무엇인지 궁금합니다.
답변 해 주셔서 감사합니다. 그리고 약속 된 오류를 처리하는 방법은 무엇입니까? step2가 실패하는 것처럼 step4로 이동 하시겠습니까? –
@Citizen : 거부는 거부에 대해 등록 된 첫 번째 처리기에 도달 할 때까지 전파되고 해상도에 대해서만 등록 된 처리기는 건너 뜁니다. 그래서'a.then (b) .then (c) .catch (...)'는'a'가 해결하는 대신'a'를 거부하면'a'에서'catch'로 곧바로 갈 것입니다. –