mergeMap

lee jae hwan·2022년 9월 1일
0

RxJS

목록 보기
12/21
    of(1,2,3).pipe( 
      map(val=>{
        return ajax.getJSON(`https://jsonplaceholder.typicode.com/posts/${val}`);
      })
    ).subscribe(data=>{
      data.subscribe(console.log)
    })

위코드는 high order observable을 만들기때문에 subscribe를 2번해야 한다.

    of(1,2,3).pipe( 
      map(val=>{
        return ajax.getJSON(`https://jsonplaceholder.typicode.com/posts/${val}`);
      }),
      mergeMap(obs=>obs)
    ).subscribe(console.log)

pipe에 mergeMap을 사용하여 subscribe를 1번만 하면 된다.

    of(1,2,3).pipe( 
      mergeMap(val=>{
        return ajax.getJSON(`https://jsonplaceholder.typicode.com/posts/${val}`);
      })
    ).subscribe(console.log)

mergeMap을 바로 사용하면 된다.


    of(1,2,3,4,5).pipe(
      mergeMap(val=>{
        return ajax.getJSON(`https://jsonplaceholder.typicode.com/posts/${val}`)
      }),
    ).subscribe(console.log)

ajax로 받아온 데이터는 순서대로 나열되지 않는다.

    of(1,2,3,4,5).pipe(
      mergeMap(val=>{
        console.log(val);
        return ajax.getJSON(`https://jsonplaceholder.typicode.com/posts/${val}`)
      },1), // 1 mergeMap 옵션을 사용하면 순서대로 데이터를 가져온다
    ).subscribe(console.log)

concatMap을 사용하면 순서대로 받아온다

0개의 댓글