>웹 프론트엔드 >JS 튜토리얼 >연결된 약속은 거부를 어떻게 처리하고 전파합니까?

연결된 약속은 거부를 어떻게 처리하고 전파합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-09 07:11:07989검색

How Do Chained Promises Handle and Propagate Rejections?

체인화된 Promise가 거부를 통과하지 못함

Promise 체인에서 Promise의 해결은 해당 오류 핸들러 기능이 거부에 어떻게 응답하는지에 따라 달라집니다. .then() 메서드는 콜백 함수의 결과에 대한 새로운 약속을 반환합니다. 성공 또는 오류 핸들러가 제공되지 않으면 결과는 다음 Promise로 직접 전달됩니다.

오류가 처리되면 결과 Promise는 오류 핸들러에서 반환된 값으로 이행됩니다. 오류를 다시 발생시키고 이를 체인으로 전파하려면 대신 err을 발생시키십시오.

위젯 상점 예에서 체인의 Promise가 오류를 수신하면 후속 Promise가 오류를 수신하도록 해야 합니다. 체인은 성공 값을 받지 못합니다.

데이터베이스 쿼리 체인에서 첫 번째 쿼리에서 오류가 발생하는 경우 오류 핸들러를 생략하면 후속 Promise가 발생하더라도 체인이 계속되도록 허용됩니다. 의미 있는 값을 받지 못할 수도 있습니다.

db.query({ parent_id: value }).then(function(query_result) {
    return db.put({
        parent_id: query_result[0].parent_id
    });
}).then(function(first_value_result) {
    return db.put({
        reference_to_first_value_id: first_value_result.id
    });
}.then(values_successfully_entered);

요약하자면, 거부가 발생한 후 체인의 후속 Promise가 성공 값을 받지 못하게 하려면 오류 처리기 함수가 오류를 발생시키거나 거부된 Promise를 반환해야 합니다.

위 내용은 연결된 약속은 거부를 어떻게 처리하고 전파합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.