나는 나를위한 유일한 선택이 서로 내에서 어떤 약속을 중첩하는 것이라고 생각하는 상황이 있습니다. 약속이 완료 될 때까지 무언가를하는 방법과 수행해야 할 약속이 있습니다. 이런 식으로 뭔가는 다음 fetchValue
방법의 then
성명에서, 나는 다른 방법 I가 지금중첩 된 약속을 구조화하는 방법
let promise = new Promise((resolve, reject) => {
fetchValue(url)
.then((value) => {
// Do something here
}).catch((err) => {
console.error(err);
});
});
doSomethingUntilPromiseisDone(promise);
그러나 :
let promise = new Promise((resolve, reject) => {
// Do some stuff
});
doSomethingUntilPromiseisDone(promise);
하지만, 내 약속에서, 나는 다른 약속을 돌려 다른 방법을 실행해야
이let promise = new Promise((resolve, reject) => {
fetchValue(url)
.then((value) => {
saveToCache(value)
.then((success) => {
console.log('success!!');
resolve('success');
});
}).catch((err) => {
console.error(err);
});
});
doSomethingUntilPromiseisDone(promise);
그래서 결국, 나는 내 약속에서, 약속이있다 : 즉, 무엇을 추측 실행해야 또 다른 약속을 반환 약속. 내가 더 잘 구성 할 수 있도록 어딘가에 있나요? Promise의 의도 된 연결 방식에 맞춰 서로를 중첩시키는 것 같습니다.
이 보이는을 평평하게
generator
를 사용할 수는 약속과 함께 백업을 호출 - 왜 그냥 콜백을 대신 사용 하시겠습니까? – Soren어디에서'resolve()'를 호출합니까? – guest271314
'got '메소드는 어디에 있습니까? – thefourtheye