RxJs v6을 사용하여 2019 년 5 월 업데이트
다른 답변이 유용하다는 것을 알았고 Arnaud가 zip
사용 에 대해 제공 한 답변에 대한 예를 제공하고 싶었습니다 .
다음 Promise.all
은와 rxjs 간의 동등성을 보여주는 스 니펫입니다 zip
(또한 rxjs6에서 연산자가 아닌 "rxjs"를 사용하여 zip을 가져 오는 방법에 유의하십시오).
import { zip } from "rxjs";
const the_weather = new Promise(resolve => {
setTimeout(() => {
resolve({ temp: 29, conditions: "Sunny with Clouds" });
}, 2000);
});
const the_tweets = new Promise(resolve => {
setTimeout(() => {
resolve(["I like cake", "BBQ is good too!"]);
}, 500);
});
let source$ = zip(the_weather, the_tweets);
source$.subscribe(([weatherInfo, tweetInfo]) =>
console.log(weatherInfo, tweetInfo)
);
Promise.all([the_weather, the_tweets]).then(responses => {
const [weatherInfo, tweetInfo] = responses;
console.log(weatherInfo, tweetInfo);
});
둘 다의 출력은 동일합니다. 위를 실행하면 다음이 제공됩니다.
{ temp: 29, conditions: 'Sunny with Clouds' } [ 'I like cake', 'BBQ is good too!' ]
{ temp: 29, conditions: 'Sunny with Clouds' } [ 'I like cake', 'BBQ is good too!' ]