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을 사용하면 순서대로 받아온다