비동기 함수에서 Promise를 반복적으로 실행하는 방법은 무엇입니까?
P粉356128676
P粉356128676 2023-08-18 14:54:42
0
2
384
<p>Promise와 async Wait를 배우고 있습니다. 여기서 addPost 함수를 호출하고 개체를 두 번 푸시한 다음 개체 배열을 반복하여 결과를 확인하고 싶지만 이 코드에서는 결과가 다음과 같습니다. 예상되는. 여기서 코드가 showDetails() 함수에 대해 실행되면 4개의 객체가 있어야 하는데 3개의 객체만 표시됩니다. 여기서 누락된 것은 무엇입니까? </p> <p><br /></p> <pre class="brush:js;toolbar:false;">const post = [{ title: '포스트 1' }, { title: '포스트 2' }]; 변수 개수 = 3; const diffFunction = 비동기 () => const addPost = new Promise((해결, 거부) => { setTimeout(() => { post.push({ title: `게시물 ${count}` }); 카운트++; 해결(개수); }, 1000) }) const deletePost = new Promise((res, rej) => { setTimeout(() => { const deltedPost = post.pop(); res(deltedPost); }, 2000) }) const showDetails = () => post.forEach(요소 => { console.log(요소.제목); }); } addPost를 기다립니다. addPost를 기다립니다. 쇼세부사항(); } diffFunction();</pre> <p><br /></p>
P粉356128676
P粉356128676

모든 응답(2)
P粉633075725

여기서 addPost는 약속 기능이 아닙니다. 그렇기 때문에 "await addPost"라고 쓰면 addPost 변수가 다시 초기화되는 것처럼 보입니다. 이것이 작동하려면 Promise 함수를 호출해야 합니다. 이렇게 하면 호출한 후에 약속된 작업을 수행하게 됩니다.

다음은 수정된 코드입니다

으아악

이것이 확실하다면 알려주세요.

감사합니다

P粉770375450

new Promise()创建一个promise时,它会立即开始运行。你可以通过在控制台中运行类似于new Promise(() => { console.log("hello") }) 코드를 사용하여 이를 테스트하면 즉시 로그가 표시됩니다.

새 Promise를 반환하는 함수를 정의하여 원하는 동작을 달성할 수 있습니다. 이렇게 하면 Promise는 함수가 호출될 때만 실행되며 각 함수 호출은 다른 Promise를 반환합니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!