약속이 때때로 약속을 반환하면 항상 약속을 반환해야합니다. 일부 코드 경로로 돌아갈 약속을하지 않아도된다면 일반적인 디자인 패턴은 return Promise.resolve()
일뿐입니다.
save().then(results=>{
})
save():promise<any>{
if (conditionA) {
return request(...);
} else if (conditonB) {
return request(...);
} else {
return Promise.resolve(...);
}
}
당신은 당신의 기능에 대한 이해가 위의 ...
부품을 작성 : 그래서, 당신의 의사 코드로 계속, 당신은 이런 식으로 뭔가를 할 것입니다. 그러나 때때로 약속을 되 돌리면 항상 약속을 되풀이합니다. 그런 다음 호출자는 반환 된 약속을 일관성있게 사용할 수 있습니다. 작업이 이미 완료되었거나 수행 할 작업이 없다면 이미 해결 된 약속 만 반환하고 호출자는 항상 약속으로 사용할 수있는 일관된 반환 값을 얻습니다.
참고이의 그 누구도 당신의 질문의 제목과 일치하지 않습니다, 그러나 그것은 완전히 당신의 질문의 몸에 맞는 않습니다. 제목이 잘못 되었습니까? 아니면 누락 된 질문 설명의 일부입니까?
이것은 결코 해결되지 않는 약속이 있다는 것을 의미하지 않으며, 함수가 약속을 전혀 만들지 않으며'.then()'가'undefined'에서 호출 될 때 예외를 throw한다는 것을 의미합니다. 그러지 마. – Bergi
예 현재이 문제와 관련된 버그 수정을하고 있습니다. 그리고 정의되지 않은 코드를 호출 할 수 없다는 것을 보여줍니다. 이유는 이것이 문제인지 확인하고 싶습니다. – Heshan