상세 컨텐츠

본문 제목

[nestJs] Promise<void> { return this.authService.signUp(authcredentialsDto); } 반환값이 없는데 return을 해?

카테고리 없음

by esoesmio 2024. 5. 9. 21:26

본문

`Promise<void>` 타입은 이 함수가 완료된 후 호출자에게 어떠한 값을 반환하지 않겠다는 의미입니다. 그러나 이것이 함수 내부에서 어떤 값도 반환하지 않는다는 것을 의미하지는 않습니다. 이 구문은 함수 내부의 동작이 끝났을 때 외부에 특정 값을 반환하지 않겠다는 의미를 갖고 있습니다. 즉, 호출자는 이 함수의 처리 결과로 어떠한 유용한 정보(예를 들어, 객체나 변수 등)를 받지 않습니다.

### `Promise<void>`의 사용 이유

함수가 `Promise<void>`를 반환하는 경우, 그것은 함수가 비동기적인 작업을 수행하지만, 그 결과로 호출자에게 어떠한 데이터도 전달하지 않는다는 것을 의미합니다. 예를 들어, 데이터를 데이터베이스에 저장하는 작업이 성공적으로 완료되었음을 알리기만 하고, 그 외의 어떤 데이터도 전달할 필요가 없을 때 이런 패턴이 사용될 수 있습니다.

### 코드 설명

 

 

Promise<void>{
    return this.authService.signUp(authCredentialDto)
}

 

 


위 코드는 다음과 같은 점을 나타냅니다:

1. **비동기 작업 수행**: `this.authService.signUp(authCredentialDto)`는 비동기 작업을 수행합니다. 이 메서드는 아마도 사용자를 등록하고 관련 처리를 하는 함수일 것입니다.

2. **Promise의 반환**: `signUp` 함수는 내부적으로 `Promise`를 반환할 수 있습니다. 이 `Promise`는 성공적으로 완료되었을 때 `resolve`될 것이지만, 그 결과로 특정한 값을 반환하지 않습니다. `signUp` 메서드가 반환하는 `Promise`의 타입이 `Promise<void>`일 가능성이 높습니다.

3. **`return` 키워드의 사용**: `return` 키워드는 여기서 `authService.signUp(...)` 메서드가 반환하는 `Promise` 객체를 반환합니다. 이 `Promise` 객체는 비동기 작업의 완료를 나타내지만, 최종적으로 호출자에게는 값을 반환하지 않습니다 (`void`).

### 정리

따라서 `Promise<void>`는 비동기 함수가 작업의 완료만을 알리고, 호출자에게 어떤 결과 값도 반환하지 않을 때 사용됩니다. `return`을 사용하는 것은 이 비동기 작업의 `Promise` 객체를 반환하기 위한 것이며, 이 객체는 작업 완료 후에 해결(`resolve`)되지만, 최종적으로는 어떠한 값도 반환하지 않습니다. 이러한 구조는 특히 API에서 작업 성공 여부만을 전달할 때 유용하게 사용됩니다.

댓글 영역