Promise Chaining 및 Value Access 이해
Angular와 같은 JavaScript 프레임워크에서 Promise로 작업할 때 Promise를 반환하는 비동기 함수를 접할 수 있습니다. Angular의 $q 문서의 예와 같습니다:
promiseB = promiseA.then(function(result) { return result + 1; });
문서에는 "promiseA가 해결된 후 즉시 promiseB가 해결될 것입니다... promiseA의 결과가 1씩 증가합니다"라고 되어 있지만 이것이 어떻게 작동하는지 명확하지 않을 수 있습니다.
이를 이해하는 열쇠는 다음을 인식하는 것입니다. promiseA의 then 함수는 새로운 promise인 promiseB를 반환합니다. 이 새로운 Promise는 promiseA가 해결된 직후에 해결되며 그 값은 promiseA 내 성공 함수의 반환 값에 의해 결정됩니다.
이 경우 성공 함수는 "결과 1"을 반환하므로 promiseB는 다음과 같이 해결됩니다. result 값은 1씩 증가합니다. 따라서 이 값에 액세스하려면 다음을 수행할 수 있습니다.
promiseB.then(function(result) { // Here you can use the result of promiseB });
최신 JavaScript 버전(ES7 이상)에서는 동일한 기능을 달성하기 위해 async/await 구문을 사용할 수 있습니다:
async function doSomething() { let result = await functionThatReturnsPromiseA(); return result + 1; }
이 경우, wait는 promiseA의 결과를 래핑 해제하고 이를 결과 변수에 직접 할당하므로 액세스하지 않고도 값으로 작업할 수 있습니다.
async/await는 항상 promise를 반환하는 비동기 함수 내에서만 사용할 수 있다는 점에 유의하세요. 따라서 비동기 함수의 반환 값에 액세스하려면 다른 비동기 컨텍스트 내에서 wait를 사용해야 합니다.
위 내용은 JavaScript에서 Promise Chain의 확인된 값에 어떻게 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!