연결된 약속과 정의되지 않은 값
이 경우 연결된 .then()은 어떤 값도 반환하지 않거나 새 값을 생성하지 않습니다. 약속하다. doStuff()에서 생성된 외부 약속이 n * 10 값으로 확인되면 후속 .then()이 호출되고 그 안에 있는 표현식의 결과(로깅 문 및 잠재적인 return 문)가 콘솔에 기록됩니다. 그러나 이 연결된 .then()에서 실제 값이 반환되지 않으므로 doStuff에 연결된 후속 .then()은 아무것도 받지 않습니다. 따라서 정의되지 않은 값이 됩니다.
해결책: 값 또는 약속 반환 from .then()
이 문제를 해결하려면 .then() 콜백이 값이나 값 또는 Promise를 반환하는 다른 함수 호출을 반환하는지 확인하세요. 이 수정된 예에서는
<code class="js">const doStuff = (n /* `n` is expected to be a positive number */) => { return new Promise((resolve, reject) => { setTimeout(() => { resolve(n * 10); }, Math.floor(Math.random() * 1000)); }) .then((result) => { if (result > 100) { console.log(`${result} is greater than 100`); } else { console.log(`${result} is not greater than 100`); } // Return `result` to pass it to the next `.then()` return result; }); }; doStuff(9) .then((data) => { console.log("data is: " + data); });</code>
이제 연결된 .then()이 이전 .then()에서 반환된 값을 수신하여 정의되지 않은 문제를 제거합니다. 출력에는 이전 .then()에서 전달된 값이 표시됩니다.
위 내용은 연결된 약속에서 정의되지 않은 값이 발생하는 원인은 무엇이며 이를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!