JavaScript เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (เจ•เจพเจฒเจฌเฉˆเจ•, เจตเจพเจ…เจฆเจพ, RxJs)

เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจคเจฟ เจธเจผเฉเจฐเฉ€ เจ…เจ•เจพเจฒ. เจธเจฐเจ—เฉ‡เจˆ เจ“เจฎเจฒเจจเฉ€เจคเจธเจ•เฉ€ เจธเฉฐเจชเจฐเจ• เจตเจฟเฉฑเจš เจนเฉˆเฅค เจ•เฉเจ เจธเจฎเจพเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉˆเจ‚ เจชเฉเจฐเจคเฉ€เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจŸเฉเจฐเฉ€เจฎ เจฆเฉ€ เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เฉ€เจคเฉ€ เจธเฉ€, เจœเจฟเฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ 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('เจฌเจพเจˆ') เจจเฉ‚เฉฐ เจ•เจพเจฒ เจธเจŸเฉˆเจ• เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค

JavaScript เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (เจ•เจพเจฒเจฌเฉˆเจ•, เจตเจพเจ…เจฆเจพ, RxJs)

9) console.log('เจฌเจพเจˆ') เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจˆ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

JavaScript เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (เจ•เจพเจฒเจฌเฉˆเจ•, เจตเจพเจ…เจฆเจพ, RxJs)

10) เจ•เจฎเจพเจ‚เจก console.log('เจฌเจพเจˆ') เจจเฉ‚เฉฐ เจ•เจพเจฒ เจธเจŸเฉˆเจ• เจคเฉ‹เจ‚ เจนเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค

JavaScript เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (เจ•เจพเจฒเจฌเฉˆเจ•, เจตเจพเจ…เจฆเจพ, RxJs)

11) เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ 5000 ms เจฒเฉฐเจ˜ เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจŸเจพเจˆเจฎเจฐ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจพเจฒเจฌเฉˆเจ• เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจ•เจพเจฒเจฌเฉˆเจ• 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)
);

เจšเจฒเฉ‹ เจ•เจฒเจชเจจเจพ เจ•เจฐเฉ€เจ เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ‡เจจเจชเฉเจŸ เจ–เฉ‡เจคเจฐ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจเจฐเฉ‡ เจฌเจฃเจพ เจฐเจนเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจจเจชเฉเจŸ เจ‡เจตเฉˆเจ‚เจŸ เจฆเฉ‡ เจนเจฐ เจ•เฉ€เจ…เจช เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจเจฐเฉ‡ เจตเจฟเฉฑเจš เจˆเจตเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจฎเฉˆเจ‚ เจ‡เจน เจจเฉ‹เจŸ เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพ เจ•เจฟ เจธเจพเจกเฉ‡ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, i.e. เจฌเจพเจ…เจฆ เจฆเฉ€เจ†เจ‚ เจ˜เจŸเจจเจพเจตเจพเจ‚ เจฆเจพ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจชเจนเจฟเจฒเจพเจ‚ เจฆเฉ‡ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจจเจพเจฒเฉ‹เจ‚ เจตเฉฑเจกเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเฉ€ เจเจฐเฉ‡ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพ เจชเฉเจฐเจตเจพเจน เจฆเจพ เจ‡เฉฑเจ• เจธเจฐเจฒ เจฎเจพเจกเจฒ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ…เจœเฉ‡ เจ‡เฉฑเจ• เจชเฉเจฐเจตเจพเจน เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจเจฐเฉ‡ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎ เจ•เจนเฉ‡ เจœเจพเจฃ เจฒเจˆ, เจ‡เจน เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ—เจพเจนเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเจฟเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจตเจฟเฉฑเจš เจจเจตเจพเจ‚ เจกเฉ‡เจŸเจพ เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจตเจพเจน เจฆเฉ€ เจชเจฐเจฟเจญเจพเจธเจผเจพ 'เจคเฉ‡ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

เจกเจพเจŸเจพ เจธเจŸเฉเจฐเฉ€เจฎ

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)

take โ€” emitters เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจฆเจพ เจฎเฉเฉฑเจฒ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจงเจพเจ—เจพ เจ–เจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจ“เจชเจฐเฉ‡เจŸเจฐ - 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)

เจ“เจชเจฐเฉ‡เจŸเจฐ - takeWhile

JavaScript เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (เจ•เจพเจฒเจฌเฉˆเจ•, เจตเจพเจ…เจฆเจพ, 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 )
);  

JavaScript เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— (เจ•เจพเจฒเจฌเฉˆเจ•, เจตเจพเจ…เจฆเจพ, RxJs)

เจ†เจชเจฐเฉ‡เจŸเจฐ - เจจเจตเฉ€เจจเจคเจฎ เจœเฉ‹เฉœเฉ‹

CombineLatest เจ†เจชเจฐเฉ‡เจŸเจฐ เจ•เฉเจ เจนเฉฑเจฆ เจคเฉฑเจ• เจตเจพเจ…เจฆเจพ.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)

เจ“เจชเจฐเฉ‡เจŸเจฐ - เจœเจผเจฟเจช

เจœเจผเจฟเจช - เจนเจฐเฉ‡เจ• เจฅเฉเจฐเฉˆเจก เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจฎเฉเฉฑเจฒ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ‡เฉฑเจ• เจเจฐเฉ‡ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจฎเฉเฉฑเจฒ เจ•เจฟเจธเฉ‡ เจงเจพเจ—เฉ‡ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ—เจฐเฉเฉฑเจช เจจเจนเฉ€เจ‚ เจฌเจฃเฉ‡เจ—เจพเฅค

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)

เจ…เจธเฉ€เจ‚ เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจฒเจฟเจ† เจนเฉˆเฅค เจ†เจ“ เจตเจฟเจธเจผเฉ‡ เจตเฉฑเจฒ เจตเจงเฉ€เจเฅค

เจ‰เฉฑเจšเฉ€ เจ†เจตเจพเจœเจผ เจตเจฟเฉฑเจš เจธเฉ‹เจšเจฃเจพ

เจ…เจคเฉ‡ เจซเจฟเจฐ เจฎเฉˆเจ‚ เจšเจพเจน เจชเฉ€เจฃ เจšเจฒเจพ เจ—เจฟเจ†เฅค เจฎเฉˆเจ‚ เจ‡เจนเจจเจพเจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจคเฉ‹เจ‚ เจฅเฉฑเจ• เจ—เจฟเจ† เจนเจพเจ‚ ๐Ÿ˜€

เจตเจฟเจธเจผเจพ เจชเจฐเจฟเจตเจพเจฐ

เจตเจฟเจธเจผเจพ เจชเจฐเจฟเจตเจพเจฐ เจ—เจฐเจฎ เจชเฉเจฐเจตเจพเจน เจฆเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเจฎเฉเฉฑเจ– เจ‰เจฆเจพเจนเจฐเจฃ เจนเฉˆเฅค เจ‡เจน เจธเจผเฉเจฐเฉ‡เจฃเฉ€เจ†เจ‚ เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจฆเฉ€ เจนเจพเจˆเจฌเฉเจฐเจฟเจก เจนเจจ เจœเฉ‹ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ— เจ…เจคเฉ‡ เจจเจฟเจฐเฉ€เจ–เจ• เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจตเจฟเจธเจผเจพ เจ‡เฉฑเจ• เจ—เจฐเจฎ เจงเจพเจ—เจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ‡เจธ เจคเฉ‹เจ‚ เจ—เจพเจนเจ•เฉ€ เจนเจŸเจพเจ‰เจฃเฉ€ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆเฅค เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจฎเฉเฉฑเจ– เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเฉ€เจ, เจคเจพเจ‚ เจ‡เจน เจนเจจ:

  • เจ…เจ—เจฒเจพ - เจธเจŸเฉเจฐเฉ€เจฎ เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ เจกเฉ‡เจŸเจพ เจฆเจพ เจคเจฌเจพเจฆเจฒเจพ
  • เจ—เจฒเจคเฉ€ - เจ—เจฒเจคเฉ€ เจ…เจคเฉ‡ เจฅเจฐเจฟเฉฑเจก เจธเจฎเจพเจชเจคเฉ€
  • เจธเฉฐเจชเฉ‚เจฐเจจ - เจงเจพเจ—เฉ‡ เจฆเฉ€ เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพ
  • เจ—เจพเจนเจ• เจฌเจฃเฉ‹ - เจ‡เฉฑเจ• เจธเจŸเฉเจฐเฉ€เจฎ เจฆเฉ€ เจ—เจพเจนเจ•เฉ€ เจฒเจ“
  • เจ—เจพเจนเจ•เฉ€ เจฐเฉฑเจฆ เจ•เจฐเฉ‹ - เจธเจŸเฉเจฐเฉ€เจฎ เจคเฉ‹เจ‚ เจ—เจพเจนเจ•เฉ€ เจนเจŸเจพเจ“
  • asObservable - เจ‡เฉฑเจ• เจจเจฟเจฐเฉ€เจ–เจ• เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹
  • เจตเจพเจ…เจฆเจพ - เจ‡เฉฑเจ• เจตเจพเจ…เจฆเฉ‡ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆ

เจตเจฟเจธเจผเฉ‡ เจฆเฉ€เจ†เจ‚ 4 5 เจ•เจฟเจธเจฎเจพเจ‚ เจนเจจเฅค

เจ‰เฉฑเจšเฉ€ เจ†เจตเจพเจœเจผ เจตเจฟเฉฑเจš เจธเฉ‹เจšเจฃเจพ

เจธเจŸเฉเจฐเฉ€เจฎ 'เจคเฉ‡ 4 เจฒเฉ‹เจ• เจ—เฉฑเจฒ เจ•เจฐ เจฐเจนเฉ‡ เจธเจจ, เจชเจฐ เจชเจคเจพ เจฒเฉฑเจ—เจพ เจ•เจฟ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจœเฉ‹เฉœเจฟเจ†เฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจœเฉ€เจ“ เจ…เจคเฉ‡ เจธเจฟเฉฑเจ–เฉ‹.

เจธเจงเจพเจฐเจจ เจตเจฟเจธเจผเจพ new Subject()- เจตเจฟเจธเจผเจฟเจ†เจ‚ เจฆเฉ€ เจธเจญ เจคเฉ‹เจ‚ เจธเจฐเจฒ เจ•เจฟเจธเจฎ. เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ†เฅค เจ—เจพเจนเจ•เฉ€ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

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

เจฐเฉ€เจชเจฒเฉ‡เจ… เจตเจฟเจธเจผเจพ new ReplaySubject(bufferSize?: number, windowTime?: number) - เจ‡เฉฐเจชเฉเฉฑเจŸ เจตเจฟเจ•เจฒเจชเจฟเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจฌเจซเจฐ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจฆเจฒเฉ€เจฒ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเฉˆ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ‡เจน เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ€ เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจธเจพเจจเฉ‚เฉฐ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

AsyncSubject new AsyncSubject() - เจธเจฌเจธเจ•เฉเจฐเจพเจˆเจฌ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ, เจ…เจคเฉ‡ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ 'เจคเฉ‡ เจนเฉ€ เจฎเฉเฉฑเจฒ เจตเจพเจชเจธ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค เจธเจŸเฉเจฐเฉ€เจฎ เจฆเจพ เจธเจฟเจฐเจซเจผ เจ†เจ–เจฐเฉ€ เจฎเฉเฉฑเจฒ เจตเจพเจชเจธ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

WebSocket เจตเจฟเจธเจผเจพ new WebSocketSubject(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>) - เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจ‰เจธเจฆเฉ‡ เจฌเจพเจฐเฉ‡ เจšเฉเฉฑเจช เจนเจจ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‰เจธเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจฆเฉ‡เจ– เจฐเจฟเจนเจพ เจนเจพเจ‚. เจœเฉ‡ เจ•เฉ‹เจˆ เจœเจพเจฃเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจน เจ•เฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฒเจฟเจ–เฉ‹ เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจœเฉ‹เฉœเจพเจ‚เจ—เฉ‡.

เจซเฉ‚. เจ–เฉˆเจฐ, เจ…เจธเฉ€เจ‚ เจ‰เจน เจธเจญ เจ•เฉเจ เจ•เจตเจฐ เจ•เฉ€เจคเจพ เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เฉฑเจœ เจฆเฉฑเจธเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจพเจญเจฆเจพเจ‡เจ• เจธเฉ€. เจคเฉเจธเฉ€เจ‚ เจฒเจพเจญเจฆเจพเจ‡เจ• เจœเจพเจฃเจ•เจพเจฐเฉ€ เจŸเฉˆเจฌ เจตเจฟเฉฑเจš เจนเจตเจพเจฒเจฟเจ†เจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจ–เฉเจฆ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฎเจฆเจฆเจ—เจพเจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹