> For the complete documentation index, see [llms.txt](https://junwoo45.gitbook.io/learn-rxjs-korean/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://junwoo45.gitbook.io/learn-rxjs-korean/learn-rxjs/recipes-1/utility/finalize.md).

# finalize / finally

#### signature: `finalize(callback: () => void)`

## 옵저버블이 완료되거나 에러 발생 시 함수를 호출합니다

### 예시

**예시 1: 옵저버블이 완료될 때 콜백 함수를 실행시킵니다**

( [StackBlitz](https://stackblitz.com/edit/typescript-ohddud) )

```javascript
import { interval } from 'rxjs';
import { take, finalize } from 'rxjs/operators';

//매 1초 마다 값을 발생시킵니다
const source = interval(1000);
//결과: 0,1,2,3,4,5....
const example = source.pipe(
  take(5), //첫 5개의 값만 받습니다
  finalize(() => console.log('Sequence complete')) // 옵저버블이 완료되면, 콜백함수를 실행시킵니다
)
const subscribe = example.subscribe(val => console.log(val));
```

### 관련된 사용법

* [Battleship Game](/learn-rxjs-korean/learn-rxjs/recipes/battleship-game.md)
* [Car Racing Game](/learn-rxjs-korean/learn-rxjs/recipes/car-racing-game.md)
* [Click Ninja Game](/learn-rxjs-korean/learn-rxjs/recipes/click-ninja-game.md)
* [HTTP Polling](/learn-rxjs-korean/learn-rxjs/recipes/http-polling.md)
* [Mine Sweeper Game](/learn-rxjs-korean/learn-rxjs/recipes/mine-sweeper-game.md)
* [Swipe To Refresh](/learn-rxjs-korean/learn-rxjs/recipes/swipe-to-refresh.md)
* [Tetris Game](/learn-rxjs-korean/learn-rxjs/recipes/tetris-game.md)

### 추가 자료

* [finalize](https://rxjs.dev/api/operators/finalize):newspaper: - 공식 문서

> :open\_file\_folder: Source Code: <https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/finalize.ts>
