Promise Chaining에서 .then()이 undefine을 반환하는 이유는 무엇입니까?
Promise Chaining에서 .then()은 새 Promise 객체를 반환합니다. . 그러나 .then() 콜백에서 값이 없거나 Promise가 명시적으로 반환되지 않으면 결과 Promise는 정의되지 않은 것으로 확인됩니다.
다음 코드를 고려하세요.
<code class="js">function doStuff(n) { 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"); } }); } doStuff(9) .then(data => { console.log(data); // Undefined });</code>
이 코드에서, 첫 번째 .then()이 어떤 값도 반환하지 않기 때문에 최종 .then()에서는 데이터가 정의되지 않습니다. 이 문제를 해결하려면 첫 번째 .then()을 수정하여 결과 값을 반환하면 됩니다.
<code class="js">function doStuff(n) { 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; // Return result to avoid undefined }); } doStuff(9) .then(data => { console.log("data is: " + data); // data is no longer undefined });</code>
위 내용은 일부 경우 약속 연결이 정의되지 않은 상태로 반환되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!