рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдирдорд╕реНрддреЗред рдУрдореЗрд▓рдирд┐рддреНрд╕рдХреА рд╕реЗрд░реНрдЧреЗрдИ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИред рдЕрднреА рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдПрдХ рд╕реНрдЯреНрд░реАрдо рд╣реЛрд╕реНрдЯ рдХреА рдереА, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдЖрдЬ рдореИрдВ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдПрдХ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рддреЛ рдЖрдЗрдП рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: рд╕реНрдЯреИрдХ рдФрд░ рдХреНрдпреВ рдХреНрдпрд╛ рд╣реИрдВ?

рдЕрдиреЗрдХрддрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ "рдЖрдЦрд┐рд░реА рдмрд╛рд░, рдкрд╣рд▓реЗ рдмрд╛рд╣рд░" LIFO рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдореЛрдбрд╝ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕рдХреЗ рддрддреНрд╡ рд╕рд┐рджреНрдзрд╛рдВрдд ("рдкрд╣рд▓реЗ рдЕрдВрджрд░, рдкрд╣рд▓реЗ рдмрд╛рд╣рд░" рдлреАрдлреЛ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

рдареАрдХ рд╣реИ, рдЪрд▓рд┐рдП рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдереНрд░реЗрдб рдФрд░ рдПрдХ рд╕реНрдЯреИрдХ рд╣реИ рдЬрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрддрд╛рд░рдмрджреНрдз рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рд╕реНрдЯреИрдХ рдкрд░ рдЕрдкрдиреА рдмрд╛рд░реА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рди рдЬрд╛рдПред

рдХреЙрд▓ рд╕реНрдЯреИрдХ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЬреЛ рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рддреА рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рд╣реИрдВред рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреВрджрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрд╕рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдзрдХреЗрд▓ рджреЗрддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд▓реМрдЯрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрдЯреИрдХ рд╕реЗ рд╕рдмрд╕реЗ рдКрдкрд░реА рддрддреНрд╡ рдХреЛ рдкреЙрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╡рд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдордиреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред рд╕реНрдЯреИрдХ рдЗрддрдирд╛ рд╣реА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдм рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓. рдлрд┐рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдиреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ?

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрдЯреИрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдкрд╛рд╕ рддрдерд╛рдХрдерд┐рдд рд╡реЗрдмрдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрддрд╛рд░ рд╣реЛрддреА рд╣реИред рд╕реНрдЯреИрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдлрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕ рдХрддрд╛рд░ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рд╕реЗ рд╕реНрдЯреИрдХ рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рд╕рдордп рд╕реНрдЯреИрдХ рдкрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рддрддреНрд╡ рд╣реИ, рддреЛ рд╡реЗ рд╕реНрдЯреИрдХ рдкрд░ рдирд╣реАрдВ рдЖ рд╕рдХрддреЗред рдмрд╕ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЯрд╛рдЗрдордЖрдЙрдЯ рджреНрд╡рд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рд╕рдордп рдореЗрдВ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ рдХрддрд╛рд░ рд╕реЗ рд╕реНрдЯреИрдХ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд░рдг рджрд░ рдЪрд░рдг рджреЗрдЦреЗрдВред рдЖрдЗрдП рдпрд╣ рднреА рджреЗрдЦреЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ.

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

1) рдЕрднреА рддрдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рд╕рд╛рдлрд╝ рд╣реИ, рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЦрд╛рд▓реА рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

2) рдлрд┐рд░ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдХрдорд╛рдВрдб console.log('Hi') рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

3) рдФрд░ рдпрд╣ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

4) рдлрд┐рд░ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ('рд╣рд╛рдп') рдХреЛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

5) рдЕрдм setTimeout(function cb1() {... }) рдХрдорд╛рдВрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

6) setTimeout(function cb1() {... }) рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдЯрд╛рдЗрдорд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдХрд░реЗрдЧрд╛.

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

7) setTimeout(function cb1() {... }) рдХрдорд╛рдВрдб рдиреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

8) рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ('рдмрд╛рдп') рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

9) рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ('рдмрд╛рдп') рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

10) рдХрдорд╛рдВрдб console.log('Bye') рдХреЛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

11) рдХрдо рд╕реЗ рдХрдо 5000 рдПрдордПрд╕ рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЯрд╛рдЗрдорд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реАрдмреА1 рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓рдмреИрдХ рдХрддрд╛рд░ рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

12) рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдХреЙрд▓рдмреИрдХ рдХрддрд╛рд░ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╕реАрдмреА1 рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

13) рд╕реАрдмреА1 рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ('рд╕реАрдмреА1') рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

14) рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ('рд╕реАрдмреА1') рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

15) рдХрдорд╛рдВрдб console.log('cb1') рдХреЛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

16) рдлрд╝рдВрдХреНрд╢рди рд╕реАрдмреА1 рдХреЛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдЗрдП рдЧрддрд┐рд╢реАрд▓рддрд╛ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдЦреИрд░, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдиреА рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдЗрдП рдЕрдм рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдХрд╛ рд╡рд┐рдХрд╛рд╕.

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 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
  • рд╣рдо рдиреЗрд╕реНрдЯреЗрдб рдПрд╕рд┐рдВрдХреНрд░реЛрдиреА рдХреЛ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд▓реЗрдХрд┐рди рд╡рд╛рджреЗ рдХреА рдЕрдкрдиреА рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрдл рдХреЗ рд╕рд╛рде рдиреГрддреНрдп рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдИ рд╡рд╛рджрд╛ рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЦреИрд░, рдпрд╣рд╛рдВ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдердХрд╛ рд╣реБрдЖ? рдЦреИрд░, рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдЧрд▓реНрд╕ рдмрдирд╛рдиреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рдЪрд╛рд░-рдордВрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореИрдВ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛.

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧтАК- рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рдиред рдЖрдЗрдП рдХрд░реАрдм рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреНрдпрд╛ рд╣реИред

// ╨Я╨╛╨╗╤Г╤З╨░╨╡╨╝ ╤Б╤Б╤Л╨╗╨║╤Г ╨╜╨░ ╤Н╨╗╨╡╨╝╨╡╨╜╤В
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 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рддрдерд╛рдХрдерд┐рдд рдЕрдкрдбреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдпрдХ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдкреНрд░реЗрдХреНрд╖рдХ. рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрддреНрдкрд╛рджрдХ. рдпрд╣ рдПрдХ рд╕рд░рдгреА, рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ, рдПрдХ рд╡реЗрдм рд╕реЙрдХреЗрдЯ, рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛ рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрд╡рд▓реЛрдХрдиреАрдп рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрд╡рд╛рд╣рдХ рд╣реИред

рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреА рдСрдмреНрдЬрд░реНрд╡рд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ:

  • рдЕрдЧрд▓рд╛ - рдирдпрд╛ рдбреЗрдЯрд╛
  • рддреНрд░реБрдЯрд┐ - рдПрдХ рддреНрд░реБрдЯрд┐ рдпрджрд┐ рдЕрдиреБрдХреНрд░рдо рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдШрдЯрдирд╛ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдВрдд рдХрд╛ рднреА рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИред
  • рдкреВрд░реНрдг - рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрддред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдХреЛрдИ рдирдпрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛

рдЖрдЗрдП рдПрдХ рдбреЗрдореЛ рджреЗрдЦреЗрдВ:

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо 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)
    );

рдСрдкрд░реЗрдЯрд░ рд╣рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХреБрдЫ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЛрдЧреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

рд╕рдВрдЪрд╛рд▓рдХ-рдХрд╛

рдЖрдЗрдП рд╕рд╣рд╛рдпрдХ рдСрдкрд░реЗрдЯрд░ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░-рдлрд╝рд┐рд▓реНрдЯрд░

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдлрд╝рд┐рд▓реНрдЯрд░ рдСрдкрд░реЗрдЯрд░, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╕реНрдЯреНрд░реАрдо рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдСрдкрд░реЗрдЯрд░ рд╕рддреНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрдЧреЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрдЪрд╛рд▓рдХ- рд▓реАрдЬрд┐рдП

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдЯреЗрдХ - рдЙрддреНрд╕рд░реНрдЬрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдзрд╛рд░рд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдСрдкрд░реЗрдЯрд░реНрд╕-рдбреЗрдмрд╛рдЙрдВрд╕рдЯрд╛рдЗрдо

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдбрд┐рдмрд╛рдЙрдВрд╕рдЯрд╛рдЗрдо - рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рднреАрддрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рддреНрдпрд╛рдЧ рджреЗрддрд╛ рд╣реИ - рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдВрддрд┐рдо рдорд╛рди рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░реНрд╕-рдЯреЗрдХрд╡реНрд╣рд╛рдЗрд▓

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдЬрдм рддрдХ рдЯреЗрдХрд╡реНрд╣рд╛рдЗрд▓ рдЧрд▓рдд рдирд╣реАрдВ рд▓реМрдЯрддрд╛, рддрдм рддрдХ рдорд╛рди рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдереНрд░реЗрдб рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░реНрд╕-рдХрдВрдмрд╛рдЗрдирд▓реЗрдЯреЗрд╕реНрдЯ

рд╕рдВрдпреБрдХреНрдд рдСрдкрд░реЗрдЯрд░ рдХрдВрдмрд╛рдЗрдирд▓реИрдЯреЗрд╕реНрдЯ рдХреБрдЫ рд╣рдж рддрдХ рдкреНрд░реЙрдорд┐рд╕.рдСрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рдЕрдиреЗрдХ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рдирд╡реАрдирддрдо рдорд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдпреБрдХреНрдд рдзрд╛рд░рд╛рдУрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдЙрддреНрд╕рд░реНрдЬрди рдХреЗ рдмрд╛рдж, рдпрд╣ рдирдП рдореВрд▓реНрдп рджреЗрдЧрд╛ред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░-рдЬрд╝рд┐рдк

рдЬрд╝рд┐рдк - рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдПрдХ рдорд╛рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрди рдорд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдереНрд░реЗрдб рд╕реЗ рд╡реИрд▓реНрдпреВ рдирд╣реАрдВ рдЖрдПрдЧреА рддреЛ рдЧреНрд░реБрдк рдирд╣реАрдВ рдмрдиреЗрдЧрд╛ред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░реНрд╕ - рдлреЛрд░реНрдХрдЬреЙрдЗрди

рдлреЛрд░реНрдХрдЬреЙрдЗрди рднреА рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдПрдХ рдорд╛рди рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рд╕рдВрдЪрд╛рд▓рдХ-рдорд╛рдирдЪрд┐рддреНрд░

рдореИрдк рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рдСрдкрд░реЗрдЯрд░ рдЙрддреНрд╕рд░реНрдЬрди рдорд╛рди рдХреЛ рдПрдХ рдирдП рдорд╛рди рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░реНрд╕ - рд╢реЗрдпрд░ рдХрд░реЗрдВ, рдЯреИрдк рдХрд░реЗрдВ

рдЯреИрдк рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╛рдиреА рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдЬреЛ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╢реЗрдпрд░ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдСрдкрд░реЗрдЯрд░ рдардВрдбреА рдзрд╛рд░рд╛ рдХреЛ рдЧрд░реНрдо рдзрд╛рд░рд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рдХреЙрд▓рдмреИрдХ, рдкреНрд░реЙрдорд┐рд╕, рдЖрд░рдПрдХреНрд╕рдЬреЗ)

рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ. рдЪрд▓рд┐рдП рд╡рд┐рд╖рдп рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реЛрдЪрдирд╛

рдФрд░ рдлрд┐рд░ рдореИрдВ рдЪрд╛рдп рдкреАрдиреЗ рдЪрд▓рд╛ рдЧрдпрд╛. рдореИрдВ рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдердХ рдЧрдпрд╛ рд╣реВрдБ ЁЯША

рд╡рд┐рд╖рдп рдкрд░рд┐рд╡рд╛рд░

рд╡рд┐рд╖рдп рдкрд░рд┐рд╡рд╛рд░ рд╣реЙрдЯ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпреЗ рд╡рд░реНрдЧ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХрд░ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрд╡рд▓реЛрдХрдиреАрдп рдФрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╡рд┐рд╖рдп рдПрдХ рд╣реЙрдЯ рд╕реНрдЯреНрд░реАрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рд╣рдо рдореБрдЦреНрдп рддрд░реАрдХреЛрдВ рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ рдпреЗ рд╣реИрдВ:

  • рдЕрдЧрд▓рд╛ - рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдирдпрд╛ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛
  • рддреНрд░реБрдЯрд┐ - рддреНрд░реБрдЯрд┐ рдФрд░ рдереНрд░реЗрдб рд╕рдорд╛рдкреНрддрд┐
  • рдкреВрд░реНрдг - рдзрд╛рдЧреЗ рдХрд╛ рдЕрдВрдд
  • рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ - рдХрд┐рд╕реА рд╕реНрдЯреНрд░реАрдо рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ
  • рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ - рд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
  • asObservable - рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ
  • toPromise - рдПрдХ рд╡рд╛рджреЗ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ

4 5 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╖рдп рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВред

рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реЛрдЪрдирд╛

рдореИрдВрдиреЗ рд╕реНрдЯреНрд░реАрдо рдкрд░ 4 рдХрд╣рд╛, рд▓реЗрдХрд┐рди рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдФрд░ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдпреЛ рдФрд░ рд╕реАрдЦреЛред

рд╕рд░рд▓ рд╡рд┐рд╖рдп new Subject()- рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╖рдпред рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛. рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд╛рдж рд╣реА рдЖрдП рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рд╡реНрдпрд╡рд╣рд╛рд░рд╡рд┐рд╖рдп new BehaviorSubject( defaultData<T> ) - рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╡рд┐рд╖рдп-рд╡рд╕реНрддреБ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ред рдЗрдирдкреБрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ. рд╣рдореЗрд╢рд╛ рдЕрдВрддрд┐рдо рдЕрдВрдХ рдХрд╛ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рдореВрд▓реНрдп рд╡рд┐рдзрд┐ рднреА рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рд▓реМрдЯрд╛рддреА рд╣реИред

рд░реАрдкреНрд▓реЗрд╕рдмреНрдЬреЗрдХреНрдЯ new ReplaySubject(bufferSize?: number, windowTime?: number) - рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рд╕реНрд╡рдпрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рд░ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

asyncsubject new AsyncSubject() - рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдкрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдореВрд▓реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд╣реА рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдорд╛рди рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛.

рд╡реЗрдмрд╕реЙрдХреЗрдЯрд╡рд┐рд╖рдп new WebSocketSubject(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>) - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреБрдк рд╣реИ рдФрд░ рдореИрдВ рд╕реНрд╡рдпрдВ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рджреЗрдЦрддрд╛ рд╣реВрдБред рдХреМрди рдЬрд╛рдиреЗ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓рд┐рдЦреЛ, рд╣рдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред

рдЙрдлрд╝реНрдлрд╝. рдЦрд╝реИрд░, рдЖрдЬ рдореИрдВ рдЬреЛ рдХреБрдЫ рднреА рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╣рдордиреЗ рдЙрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧреА рд░рд╣реА рд╣реЛрдЧреА. рдЖрдк рдЙрдкрдпреЛрдЧреА рд╕реВрдЪрдирд╛ рдЯреИрдм рдореЗрдВ рд╕рд╛рд╣рд┐рддреНрдп рдХреА рд╕реВрдЪреА рд╕реНрд╡рдпрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ