JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช•เซ‡เชฎ เช›เซ‹ เชฌเชงเชพ. Omelnitsky Sergey เชธเช‚เชชเชฐเซเช•เชฎเชพเช‚. เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ, เชฎเซ‡เช‚ เชฐเชฟเชเช•เซเชŸเชฟเชต เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชชเชฐ เชเช• เชธเซเชŸเซเชฐเซ€เชฎ เชนเซ‹เชธเซเชŸ เช•เชฐเซ€ เชนเชคเซ€, เชœเซเชฏเชพเช‚ เชฎเซ‡เช‚ JavaScript เชฎเชพเช‚ เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเซ€ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชนเชคเซ€. เช†เชœเซ‡ เชนเซเช‚ เช† เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‹ เชธเชพเชฐเชพเช‚เชถ เช†เชชเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชชเชฐเช‚เชคเซ เช†เชชเชฃเซ‡ เชฎเซเช–เซเชฏ เชธเชพเชฎเช—เซเชฐเซ€ เชถเชฐเซ‚ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เช†เชชเชฃเซ‡ เชชเชฐเชฟเชšเชฏ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชคเซ‹ เชšเชพเชฒเซ‹ เชตเซเชฏเชพเช–เซเชฏเชพเช“เชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€เช: เชธเซเชŸเซ‡เช• เช…เชจเซ‡ เช•เชคเชพเชฐ เชถเซเช‚ เช›เซ‡?

เชธเซเชŸเซ‡เช• เชเช• เชเชตเซ‹ เชธเช‚เช—เซเชฐเชน เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชคเชคเซเชตเซ‹ "เชฒเชพเชธเซเชŸ เช‡เชจ, เชซเชฐเซเชธเซเชŸ เช†เช‰เชŸ" LIFO เชงเซ‹เชฐเชฃเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

เช•เชคเชพเชฐ เชเช• เชธเช‚เช—เซเชฐเชน เช›เซ‡ เชœเซ‡เชจเชพ เชคเชคเซเชตเซ‹ เชธเชฟเชฆเซเชงเชพเช‚เชค เช…เชจเซเชธเชพเชฐ เชฎเซ‡เชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ ("เชซเชฐเซเชธเซเชŸ เช‡เชจ, เชซเชฐเซเชธเซเชŸ เช†เช‰เชŸ" FIFO

เช เซ€เช• เช›เซ‡, เชšเชพเชฒเซ‹ เชšเชพเชฒเซ เชฐเชพเช–เซ€เช.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

JavaScript เช เชธเชฟเช‚เช—เชฒ-เชฅเซเชฐเซ‡เชกเซ‡เชก เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจเชจเซ‹ เชฎเชพเชคเซเชฐ เชเช• เชฅเซเชฐเซ‡เชก เช…เชจเซ‡ เชเช• เชธเซเชŸเซ‡เช• เช›เซ‡ เชœเซเชฏเชพเช‚ เชซเช‚เช•เซเชถเชจเซเชธ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชฎเชพเชŸเซ‡ เช•เชคเชพเชฐเชฌเชฆเซเชง เช›เซ‡. เชคเซ‡เชฅเซ€, JavaScript เชเช• เชธเชฎเชฏเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชœ เช‘เชชเชฐเซ‡เชถเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช…เชจเซเชฏ เช‘เชชเชฐเซ‡เชถเชจ เชธเซเชŸเซ‡เช• เชชเชฐ เชคเซ‡เชฎเชจเชพ เชตเชณเชพเช‚เช•เชจเซ€ เชฐเชพเชน เชœเซ‹เชถเซ‡ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเซ‡เชฎเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เชจ เช†เชตเซ‡.

เช•เซ‰เชฒ เชธเซเชŸเซ‡เช• เชเช• เชกเซ‡เชŸเชพ เชฎเชพเชณเช–เซเช‚ เช›เซ‡ เชœเซ‡, เชธเชฐเชณ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚, เช†เชชเชฃเซ‡ เชœเซเชฏเชพเช‚ เช›เซ€เช เชคเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฎเชพเช‚ เชคเซ‡ เชธเซเชฅเชณ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช†เชชเชฃเซ‡ เช•เซ‹เชˆ เชซเช‚เช•เซเชถเชจเชฎเชพเช‚ เชœเชˆเช, เชคเซ‹ เช†เชชเชฃเซ‡ เชคเซ‡เชจเซ€ เชเชจเซเชŸเซเชฐเซ€เชจเซ‡ เชธเซเชŸเซ‡เช•เชจเซ€ เชŸเซ‹เชš เชชเชฐ เชฆเชฌเชพเชฃ เช•เชฐเซ€เช เช›เซ€เช. เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชซเช‚เช•เซเชถเชจเชฎเชพเช‚เชฅเซ€ เชชเชพเช›เชพ เชซเชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชธเซเชŸเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชŸเซ‹เชšเชจเซเช‚ เชคเชคเซเชต เชชเซ‹เชช เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชœเซเชฏเชพเช‚เชฅเซ€ เช†เชชเชฃเซ‡ เช† เชซเช‚เช•เซเชถเชจเชจเซ‡ เชฌเซ‹เชฒเชพเชตเซ€เช เช›เซ€เช เชคเซเชฏเชพเช‚เชฅเซ€ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เชฌเชงเชพ เชธเซเชŸเซ‡เช• เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชจเซ‡ เชนเชตเซ‡ เชเช• เช–เซ‚เชฌ เชœ เชฐเชธเชชเซเชฐเชฆ เชชเซเชฐเชถเซเชจ. เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸเชฎเชพเช‚ เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเซ€ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡?

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชธเซเชŸเซ‡เช• เช‰เชชเชฐเชพเช‚เชค, เชฌเซเชฐเชพเช‰เชเชฐเซเชธเชฎเชพเช‚ เช•เชนเซ‡เชตเชพเชคเชพ WebAPI เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช–เชพเชธ เช•เชคเชพเชฐ เชนเซ‹เชฏ เช›เซ‡. เช† เช•เชคเชพเชฐเชฎเชพเช‚เชฅเซ€ เช•เชพเชฐเซเชฏเซ‹ เชธเซเชŸเซ‡เช• เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเชพเชซ เชฅเชฏเชพ เชชเช›เซ€ เชœ เช•เซเชฐเชฎเชฎเชพเช‚ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชคเซ‡ เชชเช›เซ€ เชœ เชคเซ‡เชฎเชจเซ‡ เช…เชฎเชฒ เชฎเชพเชŸเซ‡ เช•เชคเชพเชฐเชฎเชพเช‚เชฅเซ€ เชธเซเชŸเซ‡เช• เชชเชฐ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เช† เช•เซเชทเชฃเซ‡ เชธเซเชŸเซ‡เช• เชชเชฐ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชเช• เชคเชคเซเชต เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เชธเซเชŸเซ‡เช• เชชเชฐ เชชเชนเซ‹เช‚เชšเซ€ เชถเช•เชถเซ‡ เชจเชนเซ€เช‚. เชซเช•เซเชค เช†เชจเซ‡ เช•เชพเชฐเชฃเซ‡, เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชฆเซเชตเชพเชฐเชพ เชซเช‚เช•เซเชถเชจเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชตเชพเชจเซเช‚ เช˜เชฃเซ€เชตเชพเชฐ เชธเชฎเชฏเชธเชฐ เช…เชšเซ‹เช•เซเช•เชธ เชนเซ‹เชฏ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชซเช‚เช•เซเชถเชจ เช•เชคเชพเชฐเชฎเชพเช‚เชฅเซ€ เชธเซเชŸเซ‡เช• เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชญเชฐเซ‡เชฒเซเช‚ เชนเซ‹เชฏ.

เชšเชพเชฒเซ‹ เชจเซ€เชšเซ‡ เช†เชชเซ‡เชฒเชพ เช‰เชฆเชพเชนเชฐเชฃ เชชเชฐ เชเช• เชจเชœเชฐ เช•เชฐเซ€เช เช…เชจเซ‡ เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชคเชฌเช•เซเช•เชพเชตเชพเชฐ เชœเชˆเช. เชšเชพเชฒเซ‹ เช เชชเชฃ เชœเซ‹เชˆเช เช•เซ‡ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡.

console.log('Hi');
setTimeout(function cb1() {
    console.log('cb1');
}, 5000);
console.log('Bye');

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

1) เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€ เช•เช‚เชˆ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เชจเชฅเซ€. เชฌเซเชฐเชพเช‰เชเชฐ เช•เชจเซเชธเซ‹เชฒ เชธเซเชตเชšเซเช› เช›เซ‡, เช•เซ‰เชฒ เชธเซเชŸเซ‡เช• เช–เชพเชฒเซ€ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

2) เชชเช›เซ€ console.log('Hi') เช†เชฆเซ‡เชถ เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

3) เช…เชจเซ‡ เชคเซ‡ เชชเชฐเชฟเชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ เช›เซ‡

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

4) เชชเช›เซ€ console.log('Hi') เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

5) เชนเชตเซ‡ เชšเชพเชฒเซ‹ setTimeout(function cb1() {โ€ฆ }) เช†เชฆเซ‡เชถ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช. เชคเซ‡ เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

6) setTimeout(function cb1() {โ€ฆ }) เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฌเซเชฐเชพเช‰เชเชฐ เชเช• เชŸเชพเชˆเชฎเชฐ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ เชตเซ‡เชฌ API เชจเซ‹ เชญเชพเช— เช›เซ‡. เชคเซ‡ เช•เชพเช‰เชจเซเชŸเชกเชพเช‰เชจ เช•เชฐเชถเซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

7) setTimeout(function cb1() {โ€ฆ }) เช†เชฆเซ‡เชถ เช เชคเซ‡เชจเซเช‚ เช•เชพเชฐเซเชฏ เชชเซ‚เชฐเซเชฃ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เช•เซ‰เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

8) console.log('Bye') เช†เชฆเซ‡เชถ เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

9) console.log('Bye') เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

10) เช•เชฎเชพเชจเซเชก console.log('Bye') เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

11) เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ 5000ms เชตเซ€เชคเซ€ เช—เชฏเชพ เชชเช›เซ€, เชŸเชพเชˆเชฎเชฐ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ cb1 เช•เซ‰เชฒเชฌเซ‡เช•เชจเซ‡ เช•เซ‰เชฒเชฌเซ‡เช• เช•เชคเชพเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

12) เช‡เชตเซ‡เชจเซเชŸ เชฒเซ‚เชช เช•เซ‰เชฒเชฌเซ‡เช• เช•เชคเชพเชฐเชฎเชพเช‚เชฅเซ€ เชซเช‚เช•เซเชถเชจ cb1 เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เซ‰เชฒ เชธเซเชŸเซ‡เช• เชชเชฐ เชงเช•เซ‡เชฒเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

13) cb1 เชซเช‚เช•เซเชถเชจ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ console.log('cb1')เชจเซ‡ เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

14) console.log('cb1') เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

15) เช•เชฎเชพเชจเซเชก console.log('cb1') เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

16) เชซเช‚เช•เซเชถเชจ cb1 เช•เซ‹เชฒ เชธเซเชŸเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.

เชšเชพเชฒเซ‹ เชกเชพเชฏเชจเซ‡เชฎเชฟเช•เซเชธเชฎเชพเช‚ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‹เชˆเช:

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชธเชพเชฐเซเช‚, เช…เชฎเซ‡ เชœเซ‹เชฏเซเช‚ เช•เซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸเชฎเชพเช‚ เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเซ€ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชนเชตเซ‡ เช…เชธเซเชฎเซ‡เชณ เช•เซ‹เชกเชจเชพ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ เชตเชฟเชถเซ‡ เชŸเซ‚เช‚เช•เชฎเชพเช‚ เชตเชพเชค เช•เชฐเซ€เช.

เช…เชธเซเชฎเซ‡เชณ เช•เซ‹เชกเชจเซ€ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ.

a(function (resultsFromA) {
    b(resultsFromA, function (resultsFromB) {
        c(resultsFromB, function (resultsFromC) {
            d(resultsFromC, function (resultsFromD) {
                e(resultsFromD, function (resultsFromE) {
                    f(resultsFromE, function (resultsFromF) {
                        console.log(resultsFromF);
                    })
                })
            })
        })
    })
});

เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเชธ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เชคเซ‡ JavaScript เชฎเชพเช‚ เชซเช‚เช•เชถเชจ เชธเชพเชฅเซ‡ เชœ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชคเซ‡เช“ เช…เชจเซเชฏ เชšเชฒเซ‹เชจเซ€ เชœเซ‡เชฎ เช…เชจเซเชฏ เช•เชพเชฐเซเชฏเซ‹เชฎเชพเช‚ เชชเชธเชพเชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช† เชฐเซ€เชคเซ‡ เช•เซ‹เชฒเชฌเซ‡เช•เชจเซ‹ เชœเชจเซเชฎ เชฅเชฏเซ‹. เช…เชจเซ‡ เชคเซ‡ เช‰เชฆเชพเชธเซ€, เช–เชฟเชจเซเชจเชคเชพ เช…เชจเซ‡ เช‰เชฆเชพเชธเซ€เชฎเชพเช‚ เชซเซ‡เชฐเชตเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเซ‡ เช เช‚เชกเซ€, เชฎเชจเซ‹เชฐเช‚เชœเช• เช…เชจเซ‡ เช‰เชคเซเชธเชพเชนเซ€ เช›เซ‡. เชถเชพ เชฎเชพเชŸเซ‡? เชนเชพ, เชคเซ‡ เชธเชฐเชณ เช›เซ‡:

  • เชœเซ‡เชฎ เชœเซ‡เชฎ เช•เซ‹เชกเชจเซ€ เชœเชŸเชฟเชฒเชคเชพ เชตเชงเซ‡ เช›เซ‡ เชคเซ‡เชฎ, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชเชกเชชเชฅเซ€ เช…เชธเซเชชเชทเซเชŸ เชฌเชนเซเชตเชฟเชง เชจเซ‡เชธเซเชŸเซ‡เชก เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚ เชซเซ‡เชฐเชตเชพเชฏ เช›เซ‡ - "เช•เซ‹เชฒเชฌเซ‡เช• เชนเซ‡เชฒ".
  • เชญเซ‚เชฒ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช— เชธเชฐเชณเชคเชพเชฅเซ€ เช…เชตเช—เชฃเซ€ เชถเช•เชพเชฏ เช›เซ‡.
  • เชคเชฎเซ‡ เชตเชณเชคเชฐ เชธเชพเชฅเซ‡ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“ เชชเชฐเชค เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€.

เชชเซเชฐเซ‹เชฎเชฟเชธเชจเชพ เช†เช—เชฎเชจเชฅเซ€ เชธเซเชฅเชฟเชคเชฟ เชฅเซ‹เชกเซ€ เชธเชพเชฐเซ€ เชฌเชจเซ€ เช›เซ‡.

new Promise(function(resolve, reject) {
    setTimeout(() => resolve(1), 2000);

}).then((result) => {
    alert(result);
    return result + 2;

}).then((result) => {
    throw new Error('FAILED HERE');
    alert(result);
    return result + 2;

}).then((result) => {
    alert(result);
    return result + 2;

}).catch((e) => {
    console.log('error: ', e);
});

  • เชตเชšเชจ เชธเชพเช‚เช•เชณเซ‹ เชฆเซ‡เช–เชพเชˆ, เชœเซ‡เชฃเซ‡ เช•เซ‹เชกเชจเซ€ เชตเชพเช‚เชšเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพเชฎเชพเช‚ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเซเชฏเซ‹
  • เชญเซ‚เชฒเซ‹เชจเซ‡ เช…เชŸเช•เชพเชตเชตเชพเชจเซ€ เชเช• เช…เชฒเช— เชชเชฆเซเชงเชคเชฟ เชนเชคเซ€
  • Promise.all เชธเชพเชฅเซ‡ เชธเชฎเชพเช‚เชคเชฐ เช…เชฎเชฒ เช‰เชฎเซ‡เชฐเชพเชฏเซ‹
  • เช…เชฎเซ‡ async/await เชธเชพเชฅเซ‡ เชจเซ‡เชธเซเชŸเซ‡เชก เช…เชธเชฟเช‚เช•เซเชฐเซ‹เชจเซ€ เช‰เช•เซ‡เชฒเซ€ เชถเช•เซ€เช เช›เซ€เช

เชชเชฐเช‚เชคเซ เชตเชšเชจเชจเซ€ เชคเซ‡เชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพเช“ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเช• เชตเชšเชจ, เช–เช‚เชœเชฐเซ€ เชธเชพเชฅเซ‡ เชจเซƒเชคเซเชฏ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชฐเชฆ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚, เชคเซ‡ เชเช• เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.

เช เซ€เช• เช›เซ‡, เช…เชนเซ€เช‚ เช…เชฎเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชถเซ€เชฒ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—เชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช. เชฅเชพเช•เซ€ เช—เชฏเชพ เช›เซ‹? เชธเชพเชฐเซเช‚, เชธเชพเชฐเซ€ เชตเชพเชค เช เช›เซ‡ เช•เซ‡, เชคเชฎเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช—เซเชฒ เช‰เช•เชพเชณเชตเชพ เชœเชˆ เชถเช•เซ‹ เช›เซ‹, เชฎเช‚เชฅเชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชตเชงเซ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เชชเชพเช›เชพ เช†เชตเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชจเซ‡ เชนเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ€เชถ.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชถเซ€เชฒ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—โ€Š- เชกเซ‡เชŸเชพ เชซเซเชฒเซ‹ เช…เชจเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเชพ เชชเซเชฐเชšเชพเชฐ เชชเชฐ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชจเชฎเซ‚เชจเชพเชฐเซ‚เชช. เชšเชพเชฒเซ‹ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ เชถเซเช‚ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชจเชœเซ€เช•เชฅเซ€ เชจเชœเชฐ เช•เชฐเซ€เช.

// ะŸะพะปัƒั‡ะฐะตะผ ััั‹ะปะบัƒ ะฝะฐ ัะปะตะผะตะฝั‚
const input = ducument.querySelector('input');

const eventsArray = [];

// ะŸัƒัˆะธะผ ะบะฐะถะดะพะต ัะพะฑั‹ั‚ะธะต ะฒ ะผะฐััะธะฒ eventsArray
input.addEventListener('keyup',
    event => eventsArray.push(event)
);

เชšเชพเชฒเซ‹ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ€เช เช•เซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เช‡เชจเชชเซเชŸ เชซเซ€เชฒเซเชก เช›เซ‡. เช…เชฎเซ‡ เชเชฐเซ‡ เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เช…เชจเซ‡ เช‡เชจเชชเซเชŸ เช‡เชตเซ‡เชจเซเชŸเชจเชพ เชฆเชฐเซ‡เช• เช•เซ€เช…เชช เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช‡เชตเซ‡เชจเซเชŸเชจเซ‡ เช…เชฎเชพเชฐเชพ เชเชฐเซ‡เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ€เชถเซเช‚. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชนเซเช‚ เช เชจเซ‹เช‚เชงเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เช…เชฎเชพเชฐเซเช‚ เชเชฐเซ‡ เชธเชฎเชฏ เชฆเซเชตเชพเชฐเชพ เชธเซ‰เชฐเซเชŸ เชฅเชฏเซ‡เชฒ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชชเช›เซ€เชจเซ€ เช˜เชŸเชจเชพเช“เชจเซ€ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ เช…เช—เชพเช‰เชจเซ€ เช˜เชŸเชจเชพเช“เชจเชพ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ เช•เชฐเชคเชพ เชตเชงเชพเชฐเซ‡ เช›เซ‡. เช†เชตเชพ เชเชฐเซ‡ เช เชเช• เชธเชฐเชณ เชกเซ‡เชŸเชพ เชซเซเชฒเซ‹ เชฎเซ‹เชกเชฒ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชนเชœเซ เชธเซเชงเซ€ เชซเซเชฒเซ‹ เชจเชฅเซ€. เช† เชเชฐเซ‡เชจเซ‡ เชธเซเชฐเช•เซเชทเชฟเชค เชฐเซ€เชคเซ‡ เชธเซเชŸเซเชฐเซ€เชฎ เช•เชนเซ‡เชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌเชฐเซเชธเชจเซ‡ เชœเชพเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เชจเชตเซ‹ เชกเซ‡เชŸเชพ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช†เชฎ เช†เชชเชฃเซ‡ เชชเซเชฐเชตเชพเชนเชจเซ€ เชตเซเชฏเชพเช–เซเชฏเชพ เชชเชฐ เช†เชตเซ€เช เช›เซ€เช.

เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ

const { interval } = Rx;
const { take } = RxOperators;

interval(1000).pipe(
    take(4)
)

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชชเซเชฐเชตเชพเชนโ€Šเชธเชฎเชฏ เชชเซเชฐเชฎเชพเชฃเซ‡ เชธเซ‰เชฐเซเชŸ เช•เชฐเซ‡เชฒ เชกเซ‡เชŸเชพเชจเซ€ เชเชฐเซ‡ เช›เซ‡ เชœเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชกเซ‡เชŸเชพ เชฌเชฆเชฒเชพเชˆ เช—เชฏเซ‹ เช›เซ‡. เชนเชตเซ‡ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เช•เซ‹เชก เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เช•เซ‡เชŸเชฒเซเช‚ เช…เชจเซเช•เซ‚เชณ เชฌเชจเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชคเชฎเชพเชฐเซ‡ เชเช• เช•เซเชฐเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชกเชจเชพ เชตเชฟเชตเชฟเชง เชญเชพเช—เซ‹เชฎเชพเช‚ เช˜เชฃเซ€ เช‡เชตเซ‡เชจเซเชŸเซเชธเชจเซ‡ เชŸเซเชฐเชฟเช—เชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชฎเซ‡ เชซเช•เซเชค เชธเซเชŸเซเชฐเซ€เชฎ เชชเชฐ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡ เช…เชฎเชจเซ‡ เชœเชฃเชพเชตเชถเซ‡ เช•เซ‡ เช•เซเชฏเชพเชฐเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฅเชถเซ‡. เช…เชจเซ‡ RxJs เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช† เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

RxJS เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชธเชฟเช•เซเชตเชจเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชธเซเชฎเซ‡เชณ เช…เชจเซ‡ เช‡เชตเซ‡เชจเซเชŸ-เช†เชงเชพเชฐเชฟเชค เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช›เซ‡. เชชเซเชธเซเชคเช•เชพเชฒเชฏ เชฎเซเช–เซเชฏ เชชเซเชฐเช•เชพเชฐ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ, เช˜เชฃเชพ เชธเชนเชพเชฏเช• เชชเซเชฐเช•เชพเชฐเซ‹ (เชจเชฟเชฐเซ€เช•เซเชทเช•เซ‹, เชธเชฎเชฏเชชเชคเซเชฐเช•, เชตเชฟเชทเชฏเซ‹) เช…เชจเซ‡ เชธเช‚เช—เซเชฐเชนเชจเซ€ เชœเซ‡เชฎ เช‡เชตเซ‡เชจเซเชŸเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช“เชชเชฐเซ‡เชŸเชฐเซ‹ (เชจเช•เชถเซ‹, เชซเชฟเชฒเซเชŸเชฐ, เช˜เชŸเชพเชกเซ‹, เชฆเชฐเซ‡เช• เช…เชจเซ‡ JavaScript เชเชฐเซ‡เชฎเชพเช‚เชฅเซ€ เชธเชฎเชพเชจ).

เชšเชพเชฒเซ‹ เช† เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เช–เซเชฏเชพเชฒเซ‹เชจเซ‡ เชธเชฎเชœเซ€เช.

เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ, เชจเชฟเชฐเซ€เช•เซเชทเช•, เชจเชฟเชฐเซเชฎเชพเชคเชพ

เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เช เชชเซเชฐเชฅเชฎ เช†เชงเชพเชฐ เชชเซเชฐเช•เชพเชฐ เช›เซ‡ เชœเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเชถเซเช‚. เช† เชตเชฐเซเช—เชฎเชพเช‚ RxJs เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‹ เชฎเซเช–เซเชฏ เชญเชพเช— เช›เซ‡. เชคเซ‡ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชธเซเชŸเซเชฐเซ€เชฎ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช›เซ‡, เชœเซ‡ เชธเชฌเชธเซเช•เซเชฐเชพเช‡เชฌ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เช…เชชเชกเซ‡เชŸเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเชนเชพเชฏเช• เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡, เช•เชนเซ‡เชตเชพเชคเชพ เชงเซ€ เช“เชฌเซเชเชฐเซเชตเชฐ. เชจเชฟเชฐเซ€เช•เซเชทเช• เชฎเชพเชŸเซ‡ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‹ เชธเซเชคเซเชฐเซ‹เชค เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชจเชฟเชฐเซเชฎเชพเชคเชพ. เชคเซ‡ เชเชฐเซ‡, เช‡เชŸเชฐเชฐเซ‡เชŸเชฐ, เชตเซ‡เชฌ เชธเซ‹เช•เซ‡เชŸ, เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเซ€ เช‡เชตเซ‡เชจเซเชŸ เชตเช—เซ‡เชฐเซ‡ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€ เช†เชชเชฃเซ‡ เช•เชนเซ€ เชถเช•เซ€เช เช•เซ‡ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เช เชจเชฟเชฐเซเชฎเชพเชคเชพ เช…เชจเซ‡ เชจเชฟเชฐเซ€เช•เซเชทเช• เชตเชšเซเชšเซ‡ เชตเชพเชนเช• เช›เซ‡.

เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชคเซเชฐเชฃ เชชเซเชฐเช•เชพเชฐเชจเซ€ เช“เชฌเซเชเชฐเซเชตเชฐ เช‡เชตเซ‡เชจเซเชŸเซเชธเชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ‡ เช›เซ‡:

  • เช†เช—เชพเชฎเซ€ - เชจเชตเซ‹ เชกเซ‡เชŸเชพ
  • เชญเซ‚เชฒ - เชœเซ‹ เช…เชชเชตเชพเชฆเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช•เซเชฐเชฎ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชคเซ‹ เชญเซ‚เชฒ. เช† เช˜เชŸเชจเชพ เช•เซเชฐเชฎเชจเซ‹ เช…เช‚เชค เชชเชฃ เชธเซ‚เชšเชตเซ‡ เช›เซ‡.
  • เชชเซ‚เชฐเซเชฃ - เช•เซเชฐเชฎเชจเชพ เช…เช‚เชค เชตเชฟเชถเซ‡เชจเซ‹ เชธเช‚เช•เซ‡เชค. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชนเชตเซ‡ เช•เซ‹เชˆ เชจเชตเซ‹ เชกเซ‡เชŸเชพ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚

เชšเชพเชฒเซ‹ เชเช• เชกเซ‡เชฎเซ‹ เชœเซ‹เชˆเช:

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เช†เชชเชฃเซ‡ 1, 2, 3 เช…เชจเซ‡ 1 เชธเซ‡เช•เชจเซเชก เชชเช›เซ€ เชฎเซ‚เชฒเซเชฏเซ‹ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ€เชถเซเช‚. เช†เชชเชฃเชจเซ‡ 4 เชฎเชณเซ‡ เช›เซ‡ เช…เชจเซ‡ เช†เชชเชฃเซ‹ เชฅเซเชฐเซ‡เชก เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡.

เชฎเซ‹เชŸเซ‡เชฅเซ€ เชตเชฟเชšเชพเชฐเชตเซเช‚

เช…เชจเซ‡ เชชเช›เซ€ เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชฒเช–เชตเชพ เช•เชฐเชคเชพเช‚ เช•เชนเซ‡เชตเซเช‚ เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เช›เซ‡. ๐Ÿ˜€

เช‰เชฎเซ‡เชฆเชตเชพเชฐเซ€

เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชเช• เชจเชตเซ‹ เชตเชฐเซเช— เชฌเชจเชพเชตเซ€เช เช›เซ€เช เช‰เชฎเซ‡เชฆเชตเชพเชฐเซ€, เชœเซ‡ เช…เชฎเชจเซ‡ เชชเชฆเซเชงเชคเชฟ เชธเชพเชฅเซ‡ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเชตเชพเชจเซ‹ เชตเชฟเช•เชฒเซเชช เช†เชชเซ‡ เช›เซ‡ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹. เช…เชฎเซ‡ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชœเซ‚เชฅ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชชเชฃ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช‰เชฎเซ‡เชฐเชตเซเช‚. เช เซ€เช• เช›เซ‡, เชคเซ‡ เชคเชพเชฐเซเช•เชฟเช• เช›เซ‡ เช•เซ‡ เช†เชชเชฃเซ‡ เชฅเซเชฐเซ‡เชกเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชจเช—เซเชฐเซเชช เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เชฆเซ‚เชฐ. เช‰เชฎเซ‡เชฐเซ‹ เช…เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชชเชฆเซเชงเชคเชฟเช“ เช‡เชจเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เช…เชฒเช— เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡. เชนเซเช‚ เชจเซ‹เช‚เชงเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชคเชฎเชพเชฎ เชšเชพเช‡เชฒเซเชก เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจเซเชธเชฎเชพเช‚เชฅเซ€ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ€เช เช›เซ€เช เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡เช“ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เชชเชฆเซเชงเชคเชฟ เชชเชฃ เช•เชนเซ‡ เช›เซ‡. เช†เช—เชณ เชตเชงเซ‹.

เชชเซเชฐเชตเชพเชนเซ‹เชจเชพ เชชเซเชฐเช•เชพเชฐ

HOT
เช•เซ‹เชฒเซเชก

เชจเชฟเชฐเซเชฎเชพเชคเชพ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชฌเชนเชพเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡
เชจเชฟเชฐเซเชฎเชพเชคเชพ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เช…เช‚เชฆเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชกเซ‡เชŸเชพ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡
เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชธเชฎเชฏเซ‡ เชกเซ‡เชŸเชพ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชงเซ เชคเชฐเซเช•เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡
เชฅเซเชฐเซ‡เชก เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชชเชฐ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡

เชเช•-เชฅเซ€-เช˜เชฃเชพ เชธเช‚เชฌเช‚เชงเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡
เชตเชจ-เชŸเซ-เชตเชจ เชธเช‚เชฌเช‚เชงเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡

เชฌเชงเชพ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจเซเชธเชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชธเชฎเชพเชจ เช›เซ‡
เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจเซเชธ เชธเซเชตเชคเช‚เชคเซเชฐ เช›เซ‡

เชœเซ‹ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชจ เชนเซ‹เชฏ เชคเซ‹ เชกเซ‡เชŸเชพ เช—เซเชฎ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡
เชจเชตเชพ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฎ เชธเซเชŸเซเชฐเซ€เชฎ เชฎเซ‚เชฒเซเชฏเซ‹ เชซเชฐเซ€เชฅเซ€ เชœเชพเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡

เชธเชพเชฎเซเชฏเชคเชพ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡, เชนเซเช‚ เชธเชฟเชจเซ‡เชฎเชพเชฎเชพเช‚ เชฎเซ‚เชตเซ€ เชœเซ‡เชตเชพ เช—เชฐเชฎ เชชเซเชฐเชตเชพเชนเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ€เชถ. เชคเชฎเซ‡ เช•เชฏเชพ เชธเชฎเชฏเซ‡ เช†เชตเซเชฏเชพ เช›เซ‹, เชคเซ‡ เช•เซเชทเชฃเชฅเซ€ เชคเชฎเซ‡ เชœเซ‹เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚. เชนเซเช‚ เชคเซ‡เชฎเชพเช‚เชจเชพ เช•เซ‹เชฒ เชธเชพเชฅเซ‡ เช เช‚เชกเชพ เชชเซเชฐเชตเชพเชนเชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเซ€เชถ. เช†เชงเชพเชฐ เช•เซ‹เชˆเชชเชฃ เช•เซ‹เชฒเชฐ เช†เชจเซเชธเชฐเชฟเช‚เช— เชฎเชถเซ€เชจ เชฐเซ‡เช•เซ‹เชฐเซเชกเชฟเช‚เช—เชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เช…เช‚เชค เชธเซเชงเซ€ เชธเชพเช‚เชญเชณเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ€เชจเซ‡ เช…เชŸเช•เซ€ เชถเช•เซ‹ เช›เซ‹.

เชนเซเช‚ เช เชจเซ‹เช‚เชงเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เช•เชนเซ‡เชตเชพเชคเชพ เช—เชฐเชฎ เชชเซเชฐเชตเชพเชนเซ‹ เชชเชฃ เช›เซ‡ (เชนเซเช‚ เช†เชตเซ€ เชตเซเชฏเชพเช–เซเชฏเชพ เช…เชคเซเชฏเช‚เชค เชญเชพเช—เซเชฏเซ‡ เชœ เช…เชจเซ‡ เชซเช•เซเชค เชตเชฟเชฆเซ‡เชถเซ€ เชธเชฎเซเชฆเชพเชฏเซ‹เชฎเชพเช‚ เชœ เชฎเชณเซเชฏเซ‹ เช›เซเช‚) - เช† เชเช• เชชเซเชฐเชตเชพเชน เช›เซ‡ เชœเซ‡ เช เช‚เชกเชพ เชชเซเชฐเชตเชพเชนเชฎเชพเช‚เชฅเซ€ เช—เชฐเชฎ เชชเซเชฐเชตเชพเชนเชฎเชพเช‚ เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชชเซเชฐเชถเซเชจ เชŠเชญเซ‹ เชฅเชพเชฏ เช›เซ‡ - เช•เซเชฏเชพเช‚ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹)) เชนเซเช‚ เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธเชฎเชพเช‚เชฅเซ€ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เช†เชชเซ€เชถ.

เชนเซเช‚ เช•เซ‹เชฃเซ€เชฏ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซเช‚ เช›เซเช‚. เชคเซ‡ เชธเช•เซเชฐเชฟเชฏเชชเชฃเซ‡ rxjs เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชธเชฐเซเชตเชฐ เชชเชฐ เชกเซ‡เชŸเชพ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡, เชนเซเช‚ เช เช‚เชกเชพ เชชเซเชฐเชตเชพเชนเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช…เชจเซ‡ เชนเซเช‚ asyncPipe เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชจเชฎเซ‚เชจเชพเชฎเชพเช‚ เช† เชธเซเชŸเซเชฐเซ€เชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚. เชœเซ‹ เชนเซเช‚ เช† เชชเชพเช‡เชชเชจเซ‹ เช˜เชฃเซ€ เชตเช–เชค เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚, เชคเซ‹ เชชเช›เซ€, เช เช‚เชกเชพ เชชเซเชฐเชตเชพเชนเชจเซ€ เชตเซเชฏเชพเช–เซเชฏเชพ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเชคเชพ, เชฆเชฐเซ‡เช• เชชเชพเช‡เชช เชธเชฐเซเชตเชฐ เชชเชพเชธเซ‡เชฅเซ€ เชกเซ‡เชŸเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชถเซ‡, เชœเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เช•เชนเซ‡เชตเซเช‚ เชตเชฟเชšเชฟเชคเซเชฐ เช›เซ‡. เช…เชจเซ‡ เชœเซ‹ เชนเซเช‚ เช เช‚เชกเชพ เชชเซเชฐเชตเชพเชนเชจเซ‡ เช—เชฐเชฎเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซเช‚, เชคเซ‹ เชตเชฟเชจเช‚เชคเซ€ เชเช•เชตเชพเชฐ เชฅเชถเซ‡.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชจเชตเชพ เชจเชฟเชถเชพเชณเซ€เชฏเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเชตเชพเชนเชจเชพ เชชเซเชฐเช•เชพเชฐเชจเซ‡ เชธเชฎเชœเชตเซเช‚ เช–เซ‚เชฌ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡.

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ

return this.http.get(`${environment.apiUrl}/${this.apiUrl}/trade_companies`)
    .pipe(
        tap(({ data }: TradeCompanyList) => this.companies$$.next(cloneDeep(data))),
        map(({ data }: TradeCompanyList) => data)
    );

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ เช…เชฎเชจเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชคเช• เชชเซ‚เชฐเซ€ เชชเชพเชกเซ‡ เช›เซ‡. เชคเซ‡เช“ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎเชฎเชพเช‚ เชตเชนเซ‡เชคเซ€ เช˜เชŸเชจเชพเช“เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡. เช…เชฎเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชธเซŒเชฅเซ€ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชฎเซเชฆเซเชฆเชพเช“ เชชเชฐ เชตเชฟเชšเชพเชฐ เช•เชฐเซ€เชถเซเช‚, เช…เชจเซ‡ เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชตเชฟเชถเซ‡ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ€ เช‰เชชเชฏเซ‹เช—เซ€ เชฎเชพเชนเชฟเชคเซ€เชจเซ€ เชฒเชฟเช‚เช•เซเชธ เชชเชฐ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡.

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ-เช“เชซ

เชจเชพ เชนเซ‡เชฒเซเชชเชฐ เช“เชชเชฐเซ‡เชŸเชฐเชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€เช. เชคเซ‡ เชธเชฐเชณ เชฎเซ‚เชฒเซเชฏเชจเชพ เช†เชงเชพเชฐเซ‡ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ-เชซเชฟเชฒเซเชŸเชฐ

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชซเชฟเชฒเซเชŸเชฐ เช“เชชเชฐเซ‡เชŸเชฐ, เชจเชพเชฎ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เชคเซ‡เชฎ, เชธเซเชŸเซเชฐเซ€เชฎ เชธเชฟเช—เซเชจเชฒเชจเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช‘เชชเชฐเซ‡เชŸเชฐ เชธเชพเชšเซเช‚ เชชเชพเช›เซเช‚ เช†เชชเซ‡ เช›เซ‡, เชคเซ‹ เชคเซ‡ เช†เช—เชณ เชจเซ€เช•เชณเซ€ เชœเชพเชฏ เช›เซ‡.

เช“เชชเชฐเซ‡เชŸเชฐเซ‹ - เชฒเซ‹

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชฒเซ‡ - เช‰เชคเซเชธเชฐเซเชœเชจเชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชฒเซ‡ เช›เซ‡, เชœเซ‡เชจเชพ เชชเช›เซ€ เชชเซเชฐเชตเชพเชน เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡.

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ-debounceTime

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

debounceTime - เช‰เชคเซเชธเชฐเซเชœเชฟเชค เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ‡ เช›เซ‡ เชœเซ‡ เช†เช‰เชŸเชชเซเชŸ เชกเซ‡เชŸเชพ เชตเชšเซเชšเซ‡เชจเชพ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เชธเชฎเชฏ เช…เช‚เชคเชฐเชพเชฒเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชธเชฎเชฏ เช…เช‚เชคเชฐเชพเชฒ เชชเชธเชพเชฐ เชฅเชฏเชพ เชชเช›เซ€, เช›เซ‡เชฒเซเชฒเซเช‚ เชฎเซ‚เชฒเซเชฏ เชฌเชนเชพเชฐ เช•เชพเชขเซ‡ เช›เซ‡.

const { Observable } = Rx;
const { debounceTime, take } = RxOperators;

Observable.create((observer) => {
  let i = 1;
  observer.next(i++);
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1000ะผั
  setInterval(() => {
    observer.next(i++)
  }, 1000);

 // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1500ะผั
  setInterval(() => {
    observer.next(i++)
  }, 1500);
}).pipe(
  debounceTime(700),  // ะžะถะธะดะฐะตะผ 700ะผั ะทะฝะฐั‡ะตะฝะธั ะฟั€ะตะถะดะต ั‡ะตะผ ะพะฑั€ะฐะฑะพั‚ะฐั‚ัŒ
  take(3)
);  

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซ‹-เชฒเซ‡เชตเซ‹

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เชฒเซ‡ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฎเซ‚เชฒเซเชฏเซ‹ เชฌเชนเชพเชฐ เช•เชพเชขเซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช–เซ‹เชŸเชพ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡, เชชเช›เซ€ เชฅเซเชฐเซ‡เชกเชฎเชพเช‚เชฅเซ€ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‡ เช›เซ‡.

const { Observable } = Rx;
const { debounceTime, takeWhile } = RxOperators;

Observable.create((observer) => {
  let i = 1;
  observer.next(i++);
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1000ะผั
  setInterval(() => {
    observer.next(i++)
  }, 1000);
}).pipe(
  takeWhile( producer =>  producer < 5 )
);  

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซ‹-เช•เชฎเซเชฌเชพเชˆเชจ เชฒเซ‡เชŸเซ‡เชธเซเชŸ

เชธเช‚เชฏเซเช•เซเชค เช“เชชเชฐเซ‡เชŸเชฐ combineLatest เช•เช‚เชˆเช• เช…เช‚เชถเซ‡ promise.all เชœเซ‡เชตเซเช‚ เชœ เช›เซ‡. เชคเซ‡ เชฌเชนเซเชตเชฟเชง เชชเซเชฐเชตเชพเชนเซ‹เชจเซ‡ เชเช•เชฎเชพเช‚ เชœเซ‹เชกเซ‡ เช›เซ‡. เชฆเชฐเซ‡เช• เชฅเซเชฐเซ‡เชกเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชเช• เช‰เชคเซเชธเชฐเซเชœเชจ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเชจเซ‡ เชเชฐเซ‡ เชคเชฐเซ€เช•เซ‡ เชฆเชฐเซ‡เช•เชฎเชพเช‚เชฅเซ€ เชจเชตเซ€เชจเชคเชฎ เชฎเซ‚เชฒเซเชฏเซ‹ เชฎเชณเซ‡ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, เชธเช‚เชฏเซเช•เซเชค เชชเซเชฐเชตเชพเชนเซ‹เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆเชชเชฃ เช‰เชคเซเชธเชฐเซเชœเชจ เชชเช›เซ€, เชคเซ‡ เชจเชตเชพ เชฎเซ‚เชฒเซเชฏเซ‹ เช†เชชเชถเซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

const { combineLatest, Observable } = Rx;
const { take } = RxOperators;

const observer_1 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1000ะผั
  setInterval(() => {
    observer.next('a: ' + i++);
  }, 1000);
});

const observer_2 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 750ะผั
  setInterval(() => {
    observer.next('b: ' + i++);
  }, 750);
});

combineLatest(observer_1, observer_2).pipe(take(5));

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ-เชเชฟเชช

Zip - เชฆเชฐเซ‡เช• เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚เชฅเซ€ เชฎเซ‚เชฒเซเชฏเชจเซ€ เชฐเชพเชน เชœเซเช เช›เซ‡ เช…เชจเซ‡ เช† เชฎเซ‚เชฒเซเชฏเซ‹เชจเชพ เช†เชงเชพเชฐเซ‡ เชเชฐเซ‡ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชœเซ‹ เช•เชฟเช‚เชฎเชค เช•เซ‹เชˆเชชเชฃ เชฅเซเชฐเซ‡เชกเชฎเชพเช‚เชฅเซ€ เช†เชตเชคเซ€ เชจเชฅเซ€, เชคเซ‹ เชœเซ‚เชฅ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

const { zip, Observable } = Rx;
const { take } = RxOperators;

const observer_1 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1000ะผั
  setInterval(() => {
    observer.next('a: ' + i++);
  }, 1000);
});

const observer_2 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 750
  setInterval(() => {
    observer.next('b: ' + i++);
  }, 750);
});

const observer_3 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 500
  setInterval(() => {
    observer.next('c: ' + i++);
  }, 500);
});

zip(observer_1, observer_2, observer_3).pipe(take(5));

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ - forkJoin

forkJoin เชฅเซเชฐเซ‡เชกเซ‹ เชธเชพเชฅเซ‡ เชชเชฃ เชœเซ‹เชกเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเชพเชคเซเชฐ เชคเซเชฏเชพเชฐเซ‡ เชœ เชฎเซ‚เชฒเซเชฏ เชฌเชนเชพเชฐ เช•เชพเชขเซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฎ เชฅเซเชฐเซ‡เชกเซ‹ เชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

const { forkJoin, Observable } = Rx;
const { take } = RxOperators;

const observer_1 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1000ะผั
  setInterval(() => {
    observer.next('a: ' + i++);
  }, 1000);
}).pipe(take(3));

const observer_2 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 750
  setInterval(() => {
    observer.next('b: ' + i++);
  }, 750);
}).pipe(take(5));

const observer_3 = Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 500
  setInterval(() => {
    observer.next('c: ' + i++);
  }, 500);
}).pipe(take(4));

forkJoin(observer_1, observer_2, observer_3);

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ-เชจเช•เชถเซ‹

เชฎเซ‡เชช เชŸเซเชฐเชพเชจเซเชธเชซเซ‹เชฐเซเชฎเซ‡เชถเชจ เช“เชชเชฐเซ‡เชŸเชฐ เชเชฎเชฟเชŸ เชฎเซ‚เชฒเซเชฏเชจเซ‡ เชจเชตเชพเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

const {  Observable } = Rx;
const { take, map } = RxOperators;

Observable.create((observer) => {
  let i = 1;
  // ะ˜ัะฟัƒัะบะฐะตะผ ะทะฝะฐั‡ะตะฝะธะต ั€ะฐะท ะฒ 1000ะผั
  setInterval(() => {
    observer.next(i++);
  }, 1000);
}).pipe(
  map(x => x * 10),
  take(3)
);

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซเชธ - เชถเซ‡เชฐ เช•เชฐเซ‹, เชŸเซ‡เชช เช•เชฐเซ‹

เชŸเซ‡เชช เช“เชชเชฐเซ‡เชŸเชฐ เชคเชฎเชจเซ‡ เช†เชกเช…เชธเชฐ เช•เชฐเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡, เช•เซ‹เชˆเชชเชฃ เช•เซเชฐเชฟเชฏเชพเช“ เชœเซ‡ เช•เซเชฐเชฎเชจเซ‡ เช…เชธเชฐ เช•เชฐเชคเซ€ เชจเชฅเซ€.

เชถเซ‡เชฐ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€ เช“เชชเชฐเซ‡เชŸเชฐ เช เช‚เชกเชพ เชชเซเชฐเชตเชพเชนเชจเซ‡ เช—เชฐเชฎ เชชเซเชฐเชตเชพเชนเชฎเชพเช‚ เชซเซ‡เชฐเชตเซ€ เชถเช•เซ‡ เช›เซ‡.

JavaScript เชฎเชพเช‚ เช…เชธเซเชฎเซ‡เชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— (เช•เซ‰เชฒเชฌเซ‡เช•, เชชเซเชฐเซ‹เชฎเชฟเชธ, RxJs)

เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชฅเชˆ เช—เชฏเชพ เช›เซ‡. เชšเชพเชฒเซ‹ เชตเชฟเชทเชฏ เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€เช.

เชฎเซ‹เชŸเซ‡เชฅเซ€ เชตเชฟเชšเชพเชฐเชตเซเช‚

เช…เชจเซ‡ เชชเช›เซ€ เชนเซเช‚ เชšเชพ เชชเซ€เชตเชพ เช—เชฏเซ‹. เชนเซเช‚ เช† เช‰เชฆเชพเชนเชฐเชฃเซ‹เชฅเซ€ เช•เช‚เชŸเชพเชณเซ€ เช—เชฏเซ‹ เช›เซเช‚ ๐Ÿ˜€

เชตเชฟเชทเชฏ เช•เซเชŸเซเช‚เชฌ

เชตเชฟเชทเชฏ เช•เซเชŸเซเช‚เชฌ เช—เชฐเชฎ เชฅเซเชฐเซ‡เชกเซ‹เชจเซเช‚ เชฎเซเช–เซเชฏ เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡. เช† เชตเชฐเซเช—เซ‹ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซ‹ เชธเช‚เช•เชฐ เช›เซ‡ เชœเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เช…เชจเซ‡ เชจเชฟเชฐเซ€เช•เซเชทเช• เชคเชฐเซ€เช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡. เชตเชฟเชทเชฏ เชเช• เชนเซ‹เชŸ เชธเซเชŸเซเชฐเซ€เชฎ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡. เชœเซ‹ เช†เชชเชฃเซ‡ เชฎเซเช–เซเชฏ เชชเชฆเซเชงเชคเชฟเช“ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เช, เชคเซ‹ เช† เช›เซ‡:

  • เช†เช—เชณ - เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชจเชตเซ‹ เชกเซ‡เชŸเชพ เชชเชธเชพเชฐ เช•เชฐเชตเซ‹
  • เชญเซ‚เชฒ - เชญเซ‚เชฒ เช…เชจเซ‡ เชฅเซเชฐเซ‡เชก เชธเชฎเชพเชชเซเชคเชฟ
  • เชชเซ‚เชฐเซเชฃ - เชฅเซเชฐเซ‡เชกเชจเซ‹ เช…เช‚เชค
  • เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹ - เชธเซเชŸเซเชฐเซ€เชฎ เชชเชฐ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹
  • เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹ - เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚เชฅเซ€ เช…เชจเชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹
  • เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎ เชคเชฐเซ€เช•เซ‡ - เชจเชฟเชฐเซ€เช•เซเชทเช•เชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹
  • เชตเชšเชจ - เชตเชšเชจเชฎเชพเช‚ เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เชฅเชพเชฏ เช›เซ‡

4 5 เชชเซเชฐเช•เชพเชฐเชจเชพ เชตเชฟเชทเชฏเซ‹ เชซเชพเชณเชตเซ‹.

เชฎเซ‹เชŸเซ‡เชฅเซ€ เชตเชฟเชšเชพเชฐเชตเซเช‚

เชฎเซ‡เช‚ เชธเซเชŸเซเชฐเซ€เชฎ เชชเชฐ 4 เช•เชนเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช•เซ‡ เชคเซ‡เช“เช เชเช• เชตเชงเซ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚. เชœเซ‡เชฎ เช•เชนเซ‡เชตเชค เช›เซ‡, เชœเซ€เชตเซ‹ เช…เชจเซ‡ เชถเซ€เช–เซ‹.

เชธเชฐเชณ เชตเชฟเชทเชฏ new Subject()- เชตเชฟเชทเชฏเซ‹เชจเซ‹ เชธเซŒเชฅเซ€ เชธเชฐเชณ เชชเซเชฐเช•เชพเชฐ. เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชตเชฟเชจเชพ เชฌเชจเชพเชตเซ‡เชฒ เช›เซ‡. เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชชเช›เซ€ เชœ เช†เชตเชคเชพ เชฎเซ‚เชฒเซเชฏเซ‹ เชชเชธเชพเชฐ เช•เชฐเซ‡ เช›เซ‡.

เชฌเชฟเชนเซ‡เชตเชฟเชฏเชฐเชจเซ‹ เชตเชฟเชทเชฏ new BehaviorSubject( defaultData<T> ) - เชฎเชพเชฐเชพ เชฎเชคเซ‡ เชตเชฟเชทเชฏเชจเซ‹ เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเช•เชพเชฐ-s. เช‡เชจเชชเซเชŸ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฎเซ‚เชฒเซเชฏ เชฒเซ‡ เช›เซ‡. เช›เซ‡เชฒเซเชฒเชพ เช…เช‚เช•เชจเซ‹ เชกเซ‡เชŸเชพ เชนเช‚เชฎเซ‡เชถเชพ เชธเชพเชšเชตเซ‡ เช›เซ‡, เชœเซ‡ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เชฅเชพเชฏ เช›เซ‡. เช† เชตเชฐเซเช—เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เซ€ เชฎเซ‚เชฒเซเชฏ เชชเชฆเซเชงเชคเชฟ เชชเชฃ เช›เซ‡ เชœเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชตเชฐเซเชคเชฎเชพเชจ เชฎเซ‚เชฒเซเชฏ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡.

เชฐเซ€เชชเซเชฒเซ‡ เชตเชฟเชทเชฏ new ReplaySubject(bufferSize?: number, windowTime?: number) - เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡, เชคเซ‡ เชชเซเชฐเชฅเชฎ เชฆเชฒเซ€เชฒ เชคเชฐเซ€เช•เซ‡ เชฎเซ‚เชฒเซเชฏเซ‹เชจเชพ เชฌเชซเชฐเชจเซเช‚ เช•เชฆ เชฒเชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡ เชคเซ‡ เชชเซ‹เชคเซ‡ เชœ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชถเซ‡, เช…เชจเซ‡ เชฌเซ€เชœเซ€ เชตเช–เชค เชœเซ‡ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช†เชชเชฃเชจเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช…เชธเชฟเช‚เช• เชตเชฟเชทเชฏ new AsyncSubject() - เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช•เช‚เชˆ เชฅเชคเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชœ เชฎเซ‚เชฒเซเชฏ เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชฎเชพเชคเซเชฐ เช›เซ‡เชฒเซเชฒเซเช‚ เชฎเซ‚เชฒเซเชฏ เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชตเซ‡เชฌเชธเซ‹เช•เซ‡เชŸ เชตเชฟเชทเชฏ new WebSocketSubject(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>) - เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชฎเซŒเชจ เช›เซ‡ เช…เชจเซ‡ เชนเซเช‚ เชœเชพเชคเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชฐเชฅเชฎ เชตเช–เชค เชœเซ‹เช‰เช‚ เช›เซเช‚. เช•เซ‹เชฃ เชœเชพเชฃเซ‡ เชคเซ‡ เชถเซเช‚ เช•เชฐเซ‡ เช›เซ‡, เชฒเช–เซ‹, เช…เชฎเซ‡ เช‰เชฎเซ‡เชฐเซ€เชถเซเช‚.

เชซเชซ. เช เซ€เช• เช›เซ‡, เช…เชฎเซ‡ เช†เชœเซ‡ เชนเซเช‚ เชœเซ‡ เช•เชนเซ‡เชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹ เชคเซ‡ เชฌเชงเซเช‚ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเซเช‚ เช›เซ‡. เช†เชถเชพ เช›เซ‡ เช•เซ‡ เช† เชฎเชพเชนเชฟเชคเซ€ เชฎเชฆเชฆเชฐเซ‚เชช เชนเชคเซ€. เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฎเชพเชนเชฟเชคเซ€ เชŸเซ…เชฌเชฎเชพเช‚ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเซ‡ เชธเชพเชนเชฟเชคเซเชฏเชจเซ€ เชธเซ‚เชšเชฟ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹.

เช‰เชชเชฏเซ‹เช—เซ€ เชฎเชพเชนเชฟเชคเซ€

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹