.then() 체인의 중간 Promise 결과에 액세스
Promise는 코드에서 비동기 작업을 관리하는 편리한 방법을 제공합니다. 그러나 때로는 .then() 체인 내의 중간 Promise 결과에 액세스해야 하는 시나리오가 발생할 수 있습니다.
도전
다음 Promise 체인을 고려하세요.
function getExample() { return promiseA(…).then(function(resultA) { // Some processing return promiseB(…); }).then(function(resultB) { // More processing return // How do I gain access to resultA here? }); }
이 체인에서는 promiseA()의 결과에 대한 .then() 콜백 내에서 액세스할 수 없습니다. 약속B(). 최종 계산에 두 결과를 모두 사용해야 하는 경우 문제가 될 수 있습니다.
체인 끊기
이 제한을 극복하려면 체인을 별도로 분리할 수 있습니다. 라이브러리에서 제공하는 promise 연결자를 사용하세요. 다음 리팩토링을 고려하세요.
function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // some processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // more processing return // something using both resultA and resultB }); }
이 접근 방식은 Promise.all을 사용하여 결과를 최종 .then() 콜백에 전달하기 전에 두 Promise가 모두 해결될 때까지 기다립니다.
기타 옵션
체인을 끊고 이러한 대안을 사용하면 중간 Promise 결과에 쉽게 액세스하고 명확한 모듈식 코드 구조를 유지할 수 있습니다.
위 내용은 JavaScript `.then()` 체인에서 중간 Promise 결과에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!