개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.04 08:39

await expression 사용 시 오류 발생

  • 인증체계장인 12일 전 2025.03.04 08:39
  • 6
    1
제가 현재 await expression을 사용하여 비동기 함수를 호출하고 있습니다.
await expression은 비동기 함수의 결과를 기다리는 데 사용되지만,
어떤 경우에 await expression을 사용할 수 없으며,
오류가 발생하는 경우를 설명해주셨으면 좋겠습니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    await expression을 사용할 수 없는 경우는 다음과 같습니다.

    1. 비동기 함수가 아닌 함수를 호출할 때: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수가 아닌 함수를 호출할 때 사용할 수 없습니다. 예를 들어, `console.log()` 함수는 비동기 함수이므로 await expression을 사용할 수 있지만, `Math.max()` 함수는 비동기 함수가 아니므로 await expression을 사용할 수 없습니다.

    #hostingforum.kr
    javascript
    
    // 비동기 함수
    
    async function 비동기함수() {
    
      return 10;
    
    }
    
    
    
    // 비동기 함수가 아닌 함수
    
    function 비동기함수가아님() {
    
      return 10;
    
    }
    
    
    
    // await expression을 사용할 수 있습니다.
    
    const 결과 = await 비동기함수();
    
    console.log(결과); // 10
    
    
    
    // await expression을 사용할 수 없습니다.
    
    const 결과2 = await 비동기함수가아님();
    
    console.log(결과2); // Error: await expression을 사용할 수 없습니다.
    
    


    2. await expression이 이미 사용된 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 이미 await expression이 사용된 경우를 다시 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 다시 await expression을 사용할 수 없습니다.

    #hostingforum.kr
    javascript
    
    async function 함수() {
    
      const 결과 = await 비동기함수();
    
      const 결과2 = await 비동기함수(); // Error: await expression이 이미 사용되었습니다.
    
      return 결과2;
    
    }
    
    


    3. await expression이 비동기 함수의 결과를 기다리지 못하는 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수의 결과를 기다리지 못하는 경우를 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 비동기 함수의 결과를 기다리지 못하는 경우를 사용할 수 없습니다.

    #hostingforum.kr
    javascript
    
    async function 함수() {
    
      const 결과 = await 비동기함수();
    
      setTimeout(() => {
    
        console.log(결과); // Error: await expression이 비동기 함수의 결과를 기다리지 못했습니다.
    
      }, 1000);
    
      return 결과;
    
    }
    
    


    4. await expression이 비동기 함수의 결과를 기다리지만, 비동기 함수가 종료되지 않은 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수가 종료되지 않은 경우를 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 비동기 함수가 종료되지 않은 경우를 사용할 수 없습니다.

    #hostingforum.kr
    javascript
    
    async function 함수() {
    
      const 결과 = await 비동기함수();
    
      비동기함수(); // 비동기 함수가 종료되지 않았습니다.
    
      return 결과;
    
    }
    
    


    5. await expression이 비동기 함수의 결과를 기다리지만, 비동기 함수가 에러를 발생시키는 경우: await expression은 비동기 함수의 결과를 기다리기 위해 사용되므로, 비동기 함수가 에러를 발생시키는 경우를 사용할 수 없습니다. 예를 들어, 다음과 같이 await expression을 사용한 후 비동기 함수가 에러를 발생시키는 경우를 사용할 수 없습니다.

    #hostingforum.kr
    javascript
    
    async function 함수() {
    
      try {
    
        const 결과 = await 비동기함수();
    
        return 결과;
    
      } catch (에러) {
    
        console.error(에러); // Error: await expression이 비동기 함수의 결과를 기다리지 못했습니다.
    
      }
    
    }
    
    


    위의 예제를 통해 await expression을 사용할 수 없는 경우를 확인할 수 있습니다.

    2025-03-04 08:40

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,885건 / 1 페이지

검색

게시물 검색