เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดนเดพเดฏเต. เดธเต†เตผเดœเดฟ เด’เดฎเต†เตฝเดจเดฟเดฑเตเดฑเตเดธเตเด•เดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดงเดฟเด•เด‚ เดคเดพเดฎเดธเดฟเดฏเดพเดคเต† เดžเดพเตป เดฑเดฟเดฏเดพเด•เตเดŸเต€เดตเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เดฟเตฝ เด’เดฐเต เดธเตเดŸเตเดฐเต€เด‚ เดนเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเต, เด…เดตเดฟเดŸเต† เดžเดพเตป เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดฟเดฏเต† เด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต. เด‡เดจเตเดจเต เดžเดพเตป เดˆ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเดฟเตฝ เด•เตเดฑเดฟเดชเตเดชเตเด•เตพ เดŽเดŸเตเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดงเดพเดจ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดžเด™เตเด™เตพ เด’เดฐเต เด†เดฎเตเด– เด•เตเดฑเดฟเดชเตเดชเต เด‰เดฃเตเดŸเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ เดจเดฎเตเด•เตเด•เต เดจเดฟเตผเดตเดšเดจเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚: เดŽเดจเตเดคเดพเดฃเต เด’เดฐเต เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด‚ เด•เตเดฏเต‚เดตเตเด‚?

เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดฒเดพเดธเตเดฑเตเดฑเต-เด‡เตป, เดซเดธเตเดฑเตเดฑเต-เด”เดŸเตเดŸเต LIFO เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เด˜เดŸเด•เด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดถเต‡เด–เดฐเดฎเดพเดฃเต

เด•เตเดฏเต‚ เดซเดธเตเดฑเตเดฑเต-เด‡เตป, เดซเดธเตเดฑเตเดฑเต-เด”เดŸเตเดŸเต FIFO เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เด˜เดŸเด•เด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดถเต‡เด–เดฐเดฎเดพเดฃเต

เดถเดฐเดฟ, เดจเดฎเตเด•เตเด•เต เดคเตเดŸเดฐเดพเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด’เดฐเต เด’เดฑเตเดฑ-เดคเตเดฐเต†เดกเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดพเดฃเต. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚, เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดทเดจเตเดฑเต† เด’เดฐเต เดคเตเดฐเต†เดกเตเด‚ เด’เดฐเต เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด‰เดณเตเดณเต‚, เด…เดคเดฟเตฝ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดทเดจเดพเดฏเดฟ เด•เตเดฏเต‚เดตเดฟเดฒเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, JavaScript เด’เดฐเต เดธเดฎเดฏเด‚ เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดทเตป เดฎเดพเดคเตเดฐเดฎเต‡ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเต‚, เดฎเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดฐเต† เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เด…เดตเดฐเตเดŸเต† เด“เตบ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด‚.

เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด’เดฐเต เดกเดพเดฑเตเดฑเดพ เด˜เดŸเดจเดฏเดพเดฃเต, เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดฒเต† เดธเตเดฅเดฒเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. เดจเดฎเตเดฎเตพ เด’เดฐเต เดซเด‚เด—เตเดทเดจเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดจเตเดฑเต† เดŽเตปเดŸเตเดฐเดฟ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเตเดฑเต† เดฎเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดคเดณเตเดณเตเดจเตเดจเต. เดžเด™เตเด™เตพ เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดŸเด™เตเด™เตเดฎเตเดชเต‹เตพ, เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฑเตเดฑเดตเตเด‚ เด‰เดฏเตผเดจเตเดจ เดŽเดฒเดฎเต†เดจเตเดฑเต เดชเต‹เดชเตเดชเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดซเด‚เด—เตโ€Œเดทเตป เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดฟเดŸเดคเตเดคเต เดคเดจเตเดจเต† เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเต เด‡เดคเดพเดฃเต. เด‡เดชเตเดชเต‹เตพ เดตเดณเดฐเต† เดฐเดธเด•เดฐเดฎเดพเดฏ เด’เดฐเต เดšเต‹เดฆเตเดฏเด‚. เดชเดฟเดจเตเดจเต† เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เด…เดธเดฟเตปเด•เตเดฐเดฃเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต?

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเต เดชเตเดฑเดฎเต‡, WebAPI เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดตเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฌเตเดฐเต—เดธเดฑเตเด•เตพเด•เตเด•เต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด•เตเดฏเต‚ เด‰เดฃเตเดŸเต. เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดฎเดพเดฏเตโ€Œเดšเตเดšเดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เด•เตเดฏเต‚เดตเดฟเดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚. เด‡เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดตเดฐเต† เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดคเดณเตเดณเตเด•เดฏเตเดณเตเดณเต‚. เด‡เดชเตเดชเต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เด˜เดŸเด•เดฎเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดต เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด‡เด•เตเด•เดพเดฐเดฃเดคเตเดคเดพเตฝ, เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตเดŸเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด•เตƒเดคเตเดฏเดธเดฎเดฏเดคเตเดคเต เด•เตƒเดคเตเดฏเดฎเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดซเด‚เด—เตโ€Œเดทเดจเต เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดŽเดคเตเดคเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.

เดจเดฎเตเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚, เด…เดคเดฟเดจเตเดฑเต† เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚. เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚.

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

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

1) เด‡เดคเตเดตเดฐเต† เด’เดจเตเดจเตเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดฌเตเดฐเต—เดธเตผ เด•เตบเดธเต‹เตพ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต, เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดถเต‚เดจเตเดฏเดฎเดพเดฃเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

2) เดคเตเดŸเตผเดจเตเดจเต console.log('Hi') เด•เดฎเดพเตปเดกเต เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

3) เด…เดคเต เดจเดฟเดฑเดตเต‡เดฑเตเดฑเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

4) เดคเตเดŸเตผเดจเตเดจเต เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต console.log('Hi') เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

5) เด‡เดชเตเดชเต‹เตพ setTimeout(function cb1() {โ€ฆ }) เดŽเดจเตเดจ เด•เดฎเดพเตปเดกเดฟเดฒเต‡เด•เตเด•เต เดจเต€เด™เตเด™เตเด•. เด‡เดคเต เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

6) setTimeout(function cb1() {โ€ฆ }) เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. เดตเต†เดฌเต API-เดฏเตเดŸเต† เดญเดพเด—เดฎเดพเดฏ เด’เดฐเต เดŸเตˆเดฎเตผ เดฌเตเดฐเต—เดธเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด’เดฐเต เด•เต—เดฃเตเดŸเตเดกเต—เตบ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เตเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

7) setTimeout(function cb1() {... }) เด•เดฎเดพเตปเดกเต เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟ, เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตโ€Œเดคเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

8) เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต console.log('เดฌเตˆ') เดŽเดจเตเดจ เด•เดฎเดพเตปเดกเต เดšเต‡เตผเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

9) console.log('Bye') เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดคเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

10) เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต console.log('เดฌเตˆ') เด•เดฎเดพเตปเดกเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

11) เดšเตเดฐเตเด™เตเด™เดฟเดฏเดคเต 5000 เดฎเดฟ.เดŽเดธเต เด•เดดเดฟเดžเตเดžเดพเตฝ, เดŸเตˆเดฎเตผ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เต‹เตพเดฌเดพเด•เตเด•เต เด•เตเดฏเต‚เดตเดฟเตฝ เด•เต‹เตพเดฌเดพเด•เตเด•เต cb1 เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

12) เด‡เดตเดจเตเดฑเต เดฒเต‚เดชเตเดชเต เด•เต‹เตพเดฌเดพเด•เตเด•เต เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต cb1 เดซเด‚เด—เตโ€Œเดทเตป เดŽเดŸเตเดคเตเดคเต เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

13) cb1 เดซเด‚เด—เตโ€Œเดทเตป เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต console.log('cb1') เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

14) console.log('cb1') เดŽเดจเตเดจ เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดคเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

15) เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต console.log('cb1') เด•เดฎเดพเตปเดกเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

16) เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต cb1 เดซเด‚เด—เตโ€Œเดทเตป เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตโ€Œเดคเต.

เดกเตˆเดจเดพเดฎเดฟเด•เตเดธเดฟเดฒเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚:

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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);
                    })
                })
            })
        })
    })
});

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดจเดฎเตเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจ เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดซเด‚เด—เตเดทเดจเตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดฎเดฑเตเดฑเต‡เดคเตŠเดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด‚ เดชเต‹เดฒเต† เด…เดต เดฎเดฑเตเดฑเต เดซเด‚เด—เตเดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เด•เต‹เตพเดฌเดพเด•เตเด•เตเด•เตพ เดชเดฟเดฑเดจเตเดจเดคเต. เดธเด™เตเด•เดŸเดตเตเด‚ เดตเดฟเดทเดพเดฆเดตเตเด‚ เดธเด™เตเด•เดŸเดตเตเด‚ เด†เดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเดคเตเดตเดฐเต† เด…เดคเต เดฐเดธเด•เดฐเดตเตเด‚ เดฐเดธเด•เดฐเดตเตเด‚ เด•เดณเดฟเดฏเตเดฎเดพเดฃเต. เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต? เด‡เดคเต เดฒเดณเดฟเดคเดฎเดพเดฃเต:

  • เด•เต‹เดกเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เดตเตผเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เด…เดตเตเดฏเด•เตเดคเดตเตเด‚ เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเต เดจเต†เดธเตเดฑเตเดฑเดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต - โ€œเด•เต‹เตพเดฌเดพเด•เตเด•เต เดจเดฐเด•เด‚โ€.
  • เดชเดฟเดถเด•เต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเดทเตโ€ŒเดŸเดฎเดพเด•เดพเตป เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต.
  • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฑเดฟเดŸเตเดŸเต‡เตบ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเด•เตโ€Œเดธเตโ€Œเดชเตเดฐเดทเดจเตเด•เตพ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เดพเดจเดพเดตเดฟเดฒเตเดฒ.

เดตเดพเด—เตเดฆเดพเดจเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฐเดตเต‹เดŸเต† เดธเตเดฅเดฟเดคเดฟ เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดŸเต.

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 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเดพเดจเตเดคเดฐ เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดšเต‡เตผเดคเตเดคเต
  • เด…เดธเดฟเตปเด•เต/เดตเต†เดฏเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เดจเต†เดธเตเดฑเตเดฑเดกเต เด…เดธเดฟเตปเด•เตเดฐเดฃเดฟ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเด‚

เดŽเดจเตเดจเดพเตฝ เดตเดพเด—เตเดฆเดพเดจเด™เตเด™เตพเด•เตเด•เต เดชเดฐเดฟเดฎเดฟเดคเดฟเด•เดณเตเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดŸเดพเด‚เดฌเต‹เดฑเดฟเดจเตŠเดชเตเดชเด‚ เดจเตƒเดคเตเดคเด‚ เดšเต†เดฏเตเดฏเดพเดคเต† เด’เดฐเต เดตเดพเด—เตเดฆเดพเดจเด‚ เดฑเดฆเตเดฆเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ, เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸเดคเต เด…เดคเต เด’เดฐเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต.

เดถเดฐเดฟ, เดžเด™เตเด™เตพ เดฑเดฟเดฏเดพเด•เตเดŸเต€เดตเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เดฟเดจเต† เดธเตเด—เดฎเดฎเดพเดฏเดฟ เดธเดฎเต€เดชเดฟเดšเตเดšเต. เดฎเดŸเตเดคเตเดคเต‹? เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดพเดฏ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเตป เดชเต‹เด•เดพเด‚, เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเด•, เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดคเดฟเดฐเดฟเด•เต† เดตเดฐเดพเด‚. เด’เดชเตเดชเด‚ เดžเดพเตป เดคเตเดŸเดฐเตเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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)
)

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดซเตเดฒเต‹โ€Šเดกเดพเดฑเตเดฑ เดฎเดพเดฑเดฟเดฏเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดธเดฎเดฏเดฎเดจเตเดธเดฐเดฟเดšเตเดšเต เด…เดŸเตเด•เตเด•เดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด’เดฐเต เดจเดฟเดฐเดฏเดพเดฃเต. เด’เดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เด•เต‹เดกเดฟเดจเตเดฑเต† เดตเดฟเดตเดฟเดง เดญเดพเด—เด™เตเด™เดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เด‡เดตเดจเตเดฑเตเด•เตพ เดตเดฟเดณเดฟเด•เตเด•เต‡เดฃเตเดŸ เด•เต‹เดกเต เดŽเดดเตเดคเตเดจเตเดจเดคเต เดŽเดคเตเดฐ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•. เดžเด™เตเด™เตพ เดธเตโ€ŒเดŸเตเดฐเต€เดฎเดฟเดฒเต‡เด•เตเด•เต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดคเต เดžเด™เตเด™เดณเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเด‚. RxJs เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

RxJS เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดธเต€เด•เตเดตเตปเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต, เด‡เดตเดจเตเดฑเต เด…เดงเดฟเดทเตเด เดฟเดค เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดพเดฃเต. เดฒเตˆเดฌเตเดฐเดฑเดฟ เด’เดฐเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจ, เดจเดฟเดฐเดตเดงเดฟ เดธเดนเดพเดฏ เดคเดฐเด™เตเด™เตพ (เดจเดฟเดฐเต€เด•เตเดทเด•เตป, เดทเต†เดกเตเดฏเต‚เดณเตผเดฎเดพเตผ, เดตเดฟเดทเดฏเด™เตเด™เตพ) เด•เต‚เดŸเดพเดคเต† เดถเต‡เด–เดฐเด™เตเด™เตพ เดชเต‹เดฒเต† เด‡เดตเดจเตเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ (เดฎเดพเดชเตเดชเต, เดซเดฟเตฝเดŸเตเดŸเตผ, เด•เตเดฑเดฏเตเด•เตเด•เตเด•, เด“เดฐเต‹เดจเตเดจเตเด‚ เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด…เดฑเต‡เดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดฎเดพเดจเดฎเดพเดฏเดตเดฏเตเด‚).

เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เด†เดถเดฏเด™เตเด™เตพ เดจเดฎเตเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเด‚.

เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจ, เดจเดฟเดฐเต€เด•เตเดทเด•เตป, เดจเดฟเตผเดฎเตเดฎเดพเดคเดพเดตเต

เดจเดฎเตเดฎเตพ เดจเต‹เด•เตเด•เตเดจเตเดจ เด†เดฆเตเดฏเดคเตเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดฐเดฎเดพเดฃเต เด’เดฌเตเดธเตผเดตเดฌเดฟเตพ. เดˆ เด•เตเดฒเดพเดธเดฟเตฝ RxJs เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฒเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดญเดพเด—เด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด’เดฐเต เดธเตเดŸเตเดฐเต€เดฎเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต.

เด’เดฌเตเดธเตผเดตเดฌเดฟเตพ เด…เดชเตเดกเต‡เดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดนเดพเดฏ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดต เดจเดฟเดฐเต€เด•เตเดทเด•เตป. เดจเดฟเดฐเต€เด•เตเดทเด•เดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เด‰เดฑเดตเดฟเดŸเด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต เดจเดฟเดฐเตเดฎเดพเดคเดพเดตเต. เด‡เดคเต เด’เดฐเต เด…เดฑเต‡, เด‡เดฑเตเดฑเดฑเต‡เดฑเตเดฑเตผ, เดตเต†เดฌเต เดธเต‹เด•เตเด•เดฑเตเดฑเต, เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด‡เดตเดจเตเดฑเต เดฎเตเดคเดฒเดพเดฏเดต เด†เด•เดพเด‚. เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเตผเดฎเตเดฎเดพเดคเดพเดตเดฟเดจเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเด•เดจเตเด‚ เด‡เดŸเดฏเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดšเดพเดฒเด•เดฎเดพเดฃเต เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเต เดŽเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดชเดฑเดฏเดพเด‚.

เด’เดฌเตเดธเตผเดตเดฌเดฟเตพ เดฎเต‚เดจเตเดจเต เดคเดฐเด‚ เด’เดฌเตเดธเตผเดตเตผ เด‡เดตเดจเตเดฑเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

  • เด…เดŸเตเดคเตเดคเดคเต - เดชเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ
  • เดชเดฟเดถเด•เต - เด’เดฐเต เด…เดชเดตเดพเดฆเด‚ เด•เดพเดฐเดฃเด‚ เด•เตเดฐเดฎเด‚ เด…เดตเดธเดพเดจเดฟเดšเตเดšเดพเตฝ เด’เดฐเต เดชเดฟเดถเด•เต. เดˆ เดธเด‚เดญเดตเด‚ เด•เตเดฐเดฎเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‚เตผเดคเตเดคเต€เด•เดฐเดฃเดคเตเดคเต†เดฏเตเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.
  • เดชเต‚เตผเดฃเตเดฃเด‚ - เด•เตเดฐเดฎเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดธเดฟเด—เตเดจเตฝ. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เด‡เดจเดฟ เดชเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ เด‰เดฃเตเดŸเดพเด•เดฟเดฒเตเดฒ เดŽเดจเตเดจเดพเดฃเต.

เดจเดฎเตเด•เตเด•เต เดกเต†เดฎเต‹ เดจเต‹เด•เตเด•เดพเด‚:

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ 1, 2, 3, เด•เต‚เดŸเดพเดคเต† 1 เดธเต†เด•เตเด•เตปเดกเดฟเดจเต เดถเต‡เดทเดตเตเด‚ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด‚. เดžเด™เตเด™เตพเด•เตเด•เต 4 เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดŸเตเดฐเต€เด‚ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เด‰เดฑเด•เตเด•เต† เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดชเตเดชเต‹เดดเดพเดฃเต เดŽเดจเดฟเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดคเต, เด…เดคเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดฐเดธเด•เดฐเดฎเดพเดฃเต เด…เดคเต เดชเดฑเดฏเตเด• เดŽเดจเตเดจเดคเต. ๐Ÿ˜€

เดธเดฌเตเดธเตเด•เตเดฐเดฟเดชเตเดทเตป

เดžเด™เตเด™เตพ เด’เดฐเต เดธเตเดŸเตเดฐเต€เด‚ เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดžเด™เตเด™เตพ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เตเดฒเดพเดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต เดธเดฌเตเดธเตเด•เตเดฐเดฟเดชเตเดทเตปเด‡เดคเต เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เตบเดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเตฝเด•เตเดจเตเดจเต เด…เตบเดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•. เดฎเต†เดคเตเดคเต‡เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เดธเดฌเตเดธเตเด•เตเดฐเดฟเดชเตเดทเดจเตเด•เตพ เด—เตเดฐเต‚เดชเตเดชเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚ เดšเต‡เตผเด•เตเด•เตเด•. เดถเดฐเดฟ, เดจเดฎเตเด•เตเด•เต เดคเตเดฐเต†เดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เตบเด—เตเดฐเต‚เดชเตเดชเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเดคเต เดฏเตเด•เตเดคเดฟเดธเดนเดฎเดพเดฃเต เดจเต€เด•เตเด•เด‚. เดšเต‡เตผเด•เตเด•เตเด•, เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตฝ เดฐเต€เดคเดฟเด•เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเดจเต† เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เด…เตบเดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดŽเดฒเตเดฒเดพ เดšเตˆเตฝเดกเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด…เตบเดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดตเตผ เด…เตบเดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดฐเต€เดคเดฟ เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†เดฏเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเตเดจเตเดจเต‡เดพเดŸเตเดŸเตเดชเต‡เดพเด•เตเด•.

เดธเตเดŸเตเดฐเต€เดฎเตเด•เดณเตเดŸเต† เดคเดฐเด™เตเด™เตพ

เดšเต‚เดŸเตเดณเตเดณ
เดคเดฃเตเดชเตเดชเต

เดจเดฟเตผเดฎเตเดฎเดพเดคเดพเดตเต เดจเดฟเดฐเต€เด•เตเดทเดฃเดคเตเดคเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต
เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณเดฟเดฒเดพเดฃเต เดชเตเดฐเตŠเดกเตเดฏเต‚เดธเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดคเต

เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต
เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเตป เดธเดฎเดฏเดคเตเดคเต เดกเดพเดฑเตเดฑ เดจเตฝเด•เตเดจเตเดจเต

เด…เตบเดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด…เดงเดฟเด• เดฏเตเด•เตเดคเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฃเต
เดคเตเดฐเต†เดกเต เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต

เด’เดจเตเดจเต‹ เดฐเดฃเตเดŸเต‹ เดฌเดจเตเดงเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต
เดตเตบ-เดŸเต-เดตเตบ เดฌเดจเตเดงเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดŽเดฒเตเดฒเดพ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเดจเตเด•เตพเด•เตเด•เตเด‚ เด’เดฐเต‡ เด…เตผเดคเตเดฅเดฎเตเดฃเตเดŸเต
เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเดจเตเด•เตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฃเต

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเตป เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเดพเดฑเตเดฑ เดจเดทเตโ€ŒเดŸเดฎเดพเด•เตเด‚
เด’เดฐเต เดชเตเดคเดฟเดฏ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเดจเดพเดฏเดฟ เดŽเดฒเตเดฒเดพ เดธเตโ€ŒเดŸเตเดฐเต€เด‚ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เดจเตฝเด•เตเดจเตเดจเต

เด’เดฐเต เดธเดพเดฎเตเดฏเด‚ เดจเตฝเด•เดพเตป, เด’เดฐเต เดคเต€เดฏเดฑเตเดฑเดฑเดฟเดฒเต† เด’เดฐเต เดธเดฟเดจเดฟเดฎเดฏเดพเดฏเดฟ เดžเดพเตป เด’เดฐเต เดšเต‚เดŸเตเดณเตเดณ เดธเตเดŸเตเดฐเต€เดฎเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเด‚. เดเดคเต เดธเดฎเดฏเดคเตเดคเดพเดฃเต เดจเดฟเด™เตเด™เตพ เดตเดจเตเดจเดคเต, เด† เดจเดฟเดฎเดฟเดทเด‚ เดฎเตเดคเตฝ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเดพเตป เดคเตเดŸเด™เตเด™เดฟ. เดžเดพเตป เด’เดฐเต เด•เต‹เตพเดกเต เดซเตเดฒเต‹เดฏเต† เดŸเต†เด•เตเด•เดฟเดฒเต† เด•เต‹เดณเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดชเดฟเดจเตเดคเตเดฃ. เดเดคเตŠเดฐเต เด•เต‹เดณเดฑเตเด‚ เดคเตเดŸเด•เตเด•เด‚ เดฎเตเดคเตฝ เด…เดตเดธเดพเดจเด‚ เดตเดฐเต† เดตเต‹เดฏเตโ€Œเดธเตโ€Œเดฎเต†เดฏเดฟเตฝ เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเด‚เด—เต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เตบเดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดนเดพเด‚เด—เต เด…เดชเตเดชเต เดšเต†เดฏเตเดฏเดพเด‚.

เดŠเดทเตเดฎเดณ เดชเตเดฐเดตเดพเดนเด™เตเด™เตพ เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดตเดฏเตเด‚ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต (เดžเดพเตป เดˆ เดจเดฟเตผเดตเดšเดจเด‚ เดตเดณเดฐเต† เด…เดชเต‚เตผเดตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต‡ เด•เดฃเตเดŸเดฟเดŸเตเดŸเตเดณเตเดณเต‚, เดตเดฟเดฆเต‡เดถ เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟเด•เดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต) - เด‡เดคเต เด’เดฐเต เดคเดฃเตเดคเตเดค เดชเตเดฐเดตเดพเดนเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดšเต‚เดŸเตเดณเตเดณเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดตเดพเดนเดฎเดพเดฃเต. เดšเต‹เดฆเตเดฏเด‚ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต - เดŽเดตเดฟเดŸเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚)) เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเดพเตป เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเตฝเด•เตเด‚.

เดžเดพเตป เด†เด‚เด—เตเดฒเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดตเตป เดธเดœเต€เดตเดฎเดพเดฏเดฟ 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)
    );

เดธเตเดŸเตเดฐเต€เดฎเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด•เดดเดฟเดตเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ เดžเด™เตเด™เตพเด•เตเด•เต เดจเตฝเด•เตเดจเตเดจเต. เดจเดฟเดฐเต€เด•เตเดทเดฃเดคเตเดคเดฟเตฝ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดธเด‚เดญเดตเด™เตเด™เดณเต† เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เด…เดต เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดฐเดฃเตเดŸเต†เดฃเตเดฃเด‚ เดจเต‹เด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เดณเดฟเดฒเต† เดฒเดฟเด™เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚.

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - เด“เดซเต

เดจเตเดฑเต† เด“เด•เตเดธเดฟเดฒเดฑเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚. เด‡เดคเต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด’เดฐเต เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - เดซเดฟเตฝเดŸเตเดŸเตผ

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดซเดฟเตฝเดŸเตเดŸเตผ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ, เดชเต‡เดฐเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†, เดธเตเดŸเตเดฐเต€เด‚ เดธเดฟเด—เตเดจเตฝ เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดถเดฐเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เดฟเดฏเดพเตฝ, เด…เดคเต เด•เต‚เดŸเตเดคเตฝ เด’เดดเดฟเดตเดพเด•เตเด•เตเด‚.

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - เดŽเดŸเตเด•เตเด•เตเด•

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดŽเดŸเตเด•เตเด•เตเด• - เดŽเดฎเดฟเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดคเตเดฐเต†เดกเต เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต.

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - debounceTime

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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)
);  

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - takeWhile

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

takeWhile เดคเต†เดฑเตเดฑเดพเดฏเดฟ เดจเตฝเด•เตเดจเตเดจเดคเตเดตเดฐเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดชเตเดฑเดชเตเดชเต†เดŸเตเดตเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด…เดคเต เดคเตเดฐเต†เดกเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เตบเดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต.

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 )
);  

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏเดคเต

Combinatest operator, promise.all เดŽเดจเตเดจเดคเดฟเดจเต‹เดŸเต เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดพเดฃเต. เด‡เดคเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดคเตเดฐเต†เดกเตเด•เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เด“เดฐเต‹ เดคเตเดฐเต†เดกเตเด‚ เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เด‰เดฆเตเดตเดฎเดจเด‚ เดจเดŸเดคเตเดคเดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเด‚, เด“เดฐเต‹เดจเตเดจเดฟเดจเตเดฑเต†เดฏเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด’เดฐเต เด…เดฑเต‡เดฏเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดจเดฎเตเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚. เด•เต‚เดŸเดพเดคเต†, เดฒเดฏเดฟเดชเตเดชเดฟเดšเตเดš เดธเตเดŸเตเดฐเต€เดฎเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดฆเตเดตเดฎเดจเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เด…เดคเต เดชเตเดคเดฟเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดจเตฝเด•เตเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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));

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - zip

Zip - เด“เดฐเต‹ เดคเตเดฐเต†เดกเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด’เดฐเต เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดˆ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด’เดฐเต เด…เดฑเต‡ เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเตเดฐเต†เดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเต‚เดฒเตเดฏเด‚ เดตเดฐเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด—เตเดฐเต‚เดชเตเดชเต เดฐเต‚เดชเต€เด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเดฟเดฒเตเดฒ.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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));

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - forkJoin

forkJoin เดคเตเดฐเต†เดกเตเด•เดณเดฟเดฒเตเด‚ เดšเต‡เดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพ เดคเตเดฐเต†เดกเตเด•เดณเตเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดคเต เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดชเตเดฑเดชเตเดชเต†เดŸเตเดตเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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);

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - เดฎเดพเดชเตเดชเต

เดฎเดพเดชเตเดชเต เดŸเตเดฐเดพเตปเดธเตเดซเต‹เตผเดฎเต‡เดทเตป เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเดฎเดฟเดฑเตเดฑเตผ เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เดชเตเดคเดฟเดฏ เด’เดจเตเดจเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, 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)
);

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ - เดชเด™เตเด•เดฟเดŸเตเด•, เดŸเดพเดชเตเดชเตเดšเต†เดฏเตเดฏเตเด•

เดชเดพเตผเดถเตเดตเดซเดฒเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดพเตป เดŸเดพเดชเตเดชเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต, เด•เตเดฐเดฎเดคเตเดคเต† เดฌเดพเดงเดฟเด•เตเด•เดพเดคเตเดค เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ.

เดทเต†เดฏเตผ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเด•เตเด•เต เด’เดฐเต เดคเดฃเตเดคเตเดค เดธเตเดŸเตเดฐเต€เด‚ เดšเต‚เดŸเตเดณเตเดณ เด’เดจเตเดจเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚.

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต (เด•เต‹เตพเดฌเดพเด•เตเด•เต, เดชเตเดฐเต‹เดฎเดฟเดธเต, RxJs)

เดžเด™เตเด™เตพ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเดŸเต† เดœเต‹เดฒเดฟ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟ. เดจเดฎเตเด•เตเด•เต เดตเดฟเดทเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเด•เตเด•เดพเด‚.

เด‰เดฑเด•เตเด•เต† เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เดŽเดจเตเดจเดฟเดŸเตเดŸเต เดšเดพเดฏ เด•เตเดŸเดฟเด•เตเด•เดพเตป เดชเต‹เดฏเดฟ. เดˆ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดŽเดจเดฟเด•เตเด•เต เดฎเดŸเตเดคเตเดคเต ๐Ÿ˜€

เดตเดฟเดทเดฏ เด•เตเดŸเตเด‚เดฌเด‚

เดตเดฟเดทเดฏ เด•เตเดŸเตเด‚เดฌเด‚ เดšเต‚เดŸเตเดณเตเดณ เด’เดดเตเด•เตเด•เดฟเดจเตเดฑเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฃเต. เดˆ เด•เตเดฒเดพเดธเตเด•เตพ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเด•เดฐเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏ เด’เดฐเตเดคเดฐเด‚ เดนเตˆเดฌเตเดฐเดฟเดกเต เด†เดฃเต. เดตเดฟเดทเดฏเด‚ เด’เดฐเต เดšเต‚เดŸเตเดณเตเดณ เดคเตเดฐเต†เดกเต เด†เดฏเดคเดฟเดจเดพเตฝ, เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เตบเดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดชเตเดฐเดงเดพเดจ เดฐเต€เดคเดฟเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‡เดตเดฏเดพเดฃเต:

  • เด…เดŸเตเดคเตเดคเดคเต - เดธเตเดŸเตเดฐเต€เดฎเดฟเดฒเต‡เด•เตเด•เต เดชเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเด‚
  • เดชเดฟเดถเด•เต - เดชเดฟเดถเด•เตเด‚ เดคเตเดฐเต†เดกเต เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เดฒเตเด‚
  • เดชเต‚เตผเดฃเตเดฃเด‚ - เดคเตเดฐเต†เดกเดฟเดจเตเดฑเต† เดชเต‚เตผเดคเตเดคเต€เด•เดฐเดฃเด‚
  • เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด• - เด’เดฐเต เดธเตเดŸเตเดฐเต€เด‚ เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•
  • เด…เตบเดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต - เดธเตเดŸเตเดฐเต€เดฎเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เตบเดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•
  • เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต† - เด’เดฐเต เดจเดฟเดฐเต€เด•เตเดทเด•เดจเดพเดฏเดฟ เดฐเต‚เดชเดพเดจเตเดคเดฐเดชเตเดชเต†เดŸเตเดจเตเดจเต
  • to Promise - เด’เดฐเต เดตเดพเด—เตเดฆเดพเดจเดฎเดพเดฏเดฟ เดฐเต‚เดชเดพเดจเตเดคเดฐเดชเตเดชเต†เดŸเตเดจเตเดจเต

4 เดคเดฐเด‚ เดตเดฟเดทเดฏเด™เตเด™เดณเตเดฃเตเดŸเต.

เด‰เดฑเด•เตเด•เต† เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เดธเตเดŸเตเดฐเต€เดฎเดฟเตฝ 4 เดชเต‡เตผ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด…เดตเตผ เด’เดฐเดพเดณเต† เด•เต‚เดŸเดฟ เดšเต‡เตผเดคเตเดคเต. เด…เดตเตผ เดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดœเต€เดตเดฟเด•เตเด•เตเด•, เดชเด เดฟเด•เตเด•เตเด•.

เดฒเดณเดฟเดคเดฎเดพเดฏ เดตเดฟเดทเดฏเด‚ new Subject()- เดตเดฟเดทเดฏเด™เตเด™เดณเตเดŸเต† เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดคเดฐเด‚. เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเต† เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต. เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดทเดจเต เดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเด‚ เดฒเดญเดฟเดšเตเดš เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต.

เดฌเดฟเดนเต‡เดตเดฟเดฏเตผ เดตเดฟเดทเดฏเด‚ new BehaviorSubject( defaultData<T> ) - เดŽเดจเตเดฑเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดตเดฟเดทเดฏเด‚. เด‡เตปเดชเตเดŸเตเดŸเต เดธเตเดฅเดฟเดฐ เดฎเต‚เดฒเตเดฏเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต. เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด…เดตเดธเดพเดจ เดฒเด•เตเด•เดคเตเดคเดฟเดจเตเดฑเต† เดกเดพเดฑเตเดฑ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เด•เตเดฒเดพเดธเดฟเดจเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เด’เดฐเต เดฎเต‚เดฒเตเดฏ เดฐเต€เดคเดฟเดฏเตเด‚ เด‰เดฃเตเดŸเต, เด…เดคเต เดธเตเดŸเตเดฐเต€เดฎเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเต.

เดฑเต€เดชเตเดฒเต‡ เดตเดฟเดทเดฏเด‚ new ReplaySubject(bufferSize?: number, windowTime?: number) โ€” เด‡เตปเดชเตเดŸเตเดŸเดฟเดจเต เด“เดชเตเดทเดฃเดฒเดพเดฏเดฟ เด…เดคเต เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เดฌเดซเดฑเดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเด‚ เด†เดฆเตเดฏ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดพเดฏเดฟ เดŽเดŸเตเด•เตเด•เดพเด‚, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เดจเดฎเตเด•เตเด•เต เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเดฎเดฏเดฎเดพเดฃเต.

AsyncSubject new AsyncSubject() โ€” เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด’เดจเตเดจเตเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดฎเต‚เดฒเตเดฏเด‚ เดคเดฟเดฐเดฟเด•เต† เดฒเดญเดฟเด•เตเด•เต‚. เดธเตเดŸเตเดฐเต€เดฎเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจ เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เต‚.

WebSocketSubject new WebSocketSubject(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>) - เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด…เดตเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเดถเดฌเตเดฆเดฎเดพเดฃเต, เดžเดพเตป เด…เดตเดจเต† เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เด•เดพเดฃเตเดจเตเดจเต. เด…เดตเตป เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เด†เตผเด•เตเด•เต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดฑเดฟเดฏเดพเดฎเต†เด™เตเด•เดฟเตฝ, เดฆเดฏเดตเดพเดฏเดฟ เดŽเดดเตเดคเตเด•, เดžเด™เตเด™เตพ เด…เดคเต เดšเต‡เตผเด•เตเด•เตเด‚.

เดซเตเดฏเต‚. เดถเดฐเดฟ, เด‡เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเดคเต†เดฒเตเดฒเดพเด‚ เดžเด™เตเด™เตพ เด•เดตเตผ เดšเต†เดฏเตเดคเต. เดˆ เดตเดฟเดตเดฐเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐ เดŸเดพเดฌเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฑเดซเดฑเตปเดธเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เดธเตเดตเดฏเด‚ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚.

เดธเดนเดพเดฏเด•เดฐเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•