рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдкреАрдЖрдИ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ

рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдХреЛрдб рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдмреНрд▓реЙрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рд╛рде, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╣рд┐рдореНрдордд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рднреА рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХреА рдЧрдИ рдХреЛрдИ рднреА рдЬрдЯрд┐рд▓рддрд╛, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдирдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврддреА рд╣реИ рдпрд╛ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рддреА рд╣реИред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЙрдкрдХрд░рдг рдкреНрд░рдХрд╛рд░ рдЖрд╕реНрдердЧрд┐рдд рдкрд░рд┐рдгрд╛рдо рдпрд╛ рдЖрд╕реНрдердЧрд┐рдд (рдЕрдВрдЧреНрд░реЗрдЬреА рдЖрд╕реНрдердЧрд┐рдд - рд╕реНрдердЧрд┐рдд, рджреЗрд░реА) рдХрд╛ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╣реИред

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

рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓


рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ calc рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдХреБрдЫ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред

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

 var result = calc(); another_calc(result * 2); 

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

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

 calc(function (result) { another_calc(result * 2); }); no_cares_about_result(); 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдм рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ: calc(callback) , рдФрд░ callback рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд▓реЗрддрд╛ рд╣реИред

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

рдЖрдкрдХреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рд╣реА рдЕрд░реНрде рд▓реЛрдб рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ "рд╕реАрдзрд╛" рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдирд╛рд▓реЙрдЧред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рддрд░реНрдХрд╕рдВрдЧрдд рдЙрдкрдпреЛрдЧ рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ calc рдПрдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдЧрдгрдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХреБрдЫ рдмрд╛рд╣рд░реА рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреЗрд░реА рдХреЗ рдЕрдзреАрди рд╣реИ, рддреЛ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдмрд╛рдж рдХреЗ рд╕рднреА рдХреЛрдб рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдВрдЧреЗ рдФрд░ рдЬрдм рддрдХ calc рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдб рдХрд╛ рдХреМрди рд╕рд╛ рднрд╛рдЧ рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╕реАрди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, no_cares_about_result рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдЗрд╕рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреЙрд▓рдмреИрдХ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рд╕реЗрдХреНрд╢рди рдХреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдорддреМрд░ рдкрд░, рдЙрдирдХреЗ рд╕реНрд╡рднрд╛рд╡ рд╕реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреАрдЖрдИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рджреВрд░рд╕реНрде рд╕рдВрд╕рд╛рдзрдиреЛрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢реНрдиреЛрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рднреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИрдВред рдпрджрд┐ рдПрдкреАрдЖрдИ "рджрд┐рдЦрд╛рд╡рд╛" рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдвреЛрдВрдЧ" рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рджреЗрд░реА рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ: рджреЗрд░реА рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛, рдЙрддрдирд╛ рдмреЗрд╣рддрд░ред рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдПрдкреАрдЖрдИ, рдЫреЛрдЯреА рджреЗрд░реА рджрд┐рдЦрд╛рддреА рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдЗрд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд░рд╕реНрде рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рддреЗрдЬреА рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрддрд░рд┐рдд рдЪреБрдиреМрддрд┐рдпрд╛рдВ


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

 var result = calc_one(); result = calc_two(result * 2); result = calc_three(result + 42); // using result 

рдХреЛрдб рдирд┐рдореНрди рд░реВрдк рд▓реЗрдЧрд╛:

 calc_one(function (result) { calc_two(result * 2, function (result) { calc_three(result + 42, function (result) { // using result }); }); }); 

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

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

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкрд░рд┐рдгрд╛рдо


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

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

рдРрд╕реА рд╡рд╕реНрддреБ рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрд╕рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рднреА рд╣реИред рдРрд╕реА рд╡рд╕реНрддреБ рджреЛ рдЕрд╡рд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ: 1) рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ, рдФрд░ 2) рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдХреНрд░рдордг рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд░рд╛рдЬреНрдп рд╕реЗ рджреВрд╕рд░реЗ рддрдХ рд╕рдВрднрд╡ рд╣реИред рдЬрдм рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдЬрд╛рдирд╛ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 function Deferred () // constructor function on (callback) function resolve (result) 

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

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

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд▓реА рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдЖрд╕реНрдердЧрд┐рдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ рд╡рд╛рджреЗ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╕рд╛рдзрд╛рд░рдг рдХреЙрд▓рдмреИрдХ рдкрд░, рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:

1. рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдореВрд░реНрдд: рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓рдмреИрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдХреА рд╕рджрд╕реНрдпрддрд╛ рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрдиреА рд╣реБрдИ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдХреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдиреЙрдУрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ)ред рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрд▓реАрдирд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ: рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рдкреИрд░рд╛рдореАрдЯрд░, рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдЖрджрд┐ рдХреА рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
2. рдкрд░рд┐рдгрд╛рдо рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЕрдореВрд░реНрдд: рдХреЛрдб рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рдмрд╕ рд╣реИрдВрдбрд▓рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЖ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
3. рдХрдИ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛: рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВрдбрд▓рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЙрд▓рдмреИрдХ рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдХрд╣рддрд╛ рд╣реИред
4. рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА "рдмреАрдЬрдЧрдгрд┐рдд", рдЬреЛ рдЖрдкрдХреЛ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЪрд▓рд╛рдиреЗ, рдпрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди getData(id, onSuccess) , рдЬреЛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ: рдХреБрдЫ рддрддреНрд╡ рдХреА рдЖрдИрдбреА рдЬреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 getData(id, function (item) { // do some actions with item }); 

рд╣рдо рдЗрд╕реЗ Deferred рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдм рд╣рд╕реНрддрд╛рдХреНрд╖рд░ getData(id) рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 getData(id).on(function (item) { // do some actions with item }); 

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

рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐


рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ред рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдореЗрдВ, рдПрдХ рдЕрдкрд╡рд╛рдж рддрдВрддреНрд░ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдХреЗ рдЙрдЪреНрдЪ рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ "рд╕реНрдерд╛рдиреАрдп" рдХреЛрдб рдХреЛ рдмрд┐рдирд╛ рдЬрдЯрд┐рд▓ рдХрд┐рдП рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЫреАрдВрдХ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдореБрдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдореЗрдВ (рдФрд░ рдХрд┐рд╕реА рднреА рдХреЙрд▓рдмреИрдХ рдпреЛрдЬрдирд╛ рдореЗрдВ), рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдХрдард┐рдирд╛рдИ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдкрд╡рд╛рдж рдкрд░рд┐рдгрд╛рдо рдХреА рддрд░рд╣, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЖ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЙрд▓ рдХреЛ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╣реИ (рд╣рдо рдирдХрд╛рд░рд╛рддреНрдордХ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рднреА), рдЬрдмрдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ (рдЕрдкрд╡рд╛рдж) рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо, рд╕рд╛рде рд╣реА рд╕рдлрд▓, рдПрдХ рдХреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрднреА-рдХрднреА рдЧрд▓рддреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреНрд░реБрдЯрд┐ рдФрд░ рдкреАрда рд╕реЗ рд╢рдмреНрджреЛрдВ рдкрд░ рдПрдХ рдирд╛рдЯрдХ)ред

рдЖрдЗрдП рд╣рдо рдЕрдкрдиреЗ Deferred рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдордЬрдмреВрдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдлрд▓рддрд╛ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗ, рдЕрд░реНрдерд╛рддреН, рд╣рдо on рдФрд░ resolve рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ resolve ред

 function on (state, callback) 

рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рджреЛ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдиреНрдпреВрдорд░реЗрдЯреЗрдб рдЯрд╛рдЗрдк рд╡реИрд▓реНрдпреВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, E_SUCCESS , E_ERROR ред рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕рд░рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ: 'рд╕рдлрд▓рддрд╛', 'рддреНрд░реБрдЯрд┐'ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдордЬрдмреВрдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реЗ Deferred рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╕рджрд╕реНрдпрддрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдХрдиреАрдХ) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рддрджрдиреБрд╕рд╛рд░ рд╡рд┐рдзрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдмрджрд▓рддрд╛ рд╣реИ:

 function resolve (state, result) 

рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд░рд╛рдЬреНрдп рдХреЛ Deferred (рддреНрд░реБрдЯрд┐, рд╕рдлрд▓рддрд╛) рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рд░рд╛рдЬреНрдп рдирд┐рдпрдо рдЕрднреА рднреА рдРрд╕реА рд╕рдВрд╢реЛрдзрд┐рдд рд╡рд╕реНрддреБ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рдж, рд╡рд╕реНрддреБ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд╡рд╕реНрддреБ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓реА рдЧрдИ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдХрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред

рддреЛ, рд╣рдорд╛рд░реЗ getData рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреБрдЫ рддреНрд░реБрдЯрд┐ (рдХреЛрдИ рдбреЗрдЯрд╛, рдЧрд▓рдд рдЗрдирдкреБрдЯ, рд╡рд┐рдлрд▓рддрд╛, рдЖрджрд┐) рдХреЗ рд╕рд╛рде getData рд╣реЛрдиреЗ рджреЗрдВред
рдХреЛрдб рдирд┐рдореНрди рд░реВрдк рд▓реЗрдЧрд╛:

 getData(id) .on('success', function (item) { // do some actions with item }) .on('error', function (err_code) { // deal with error }); 

рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН, рдорд╛рдирдХ Node.js. рд╕реЗ рдорд╛рдирдХ fsereadFile рд╡рд┐рдзрд┐ рд▓реЗрдВред рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдпрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдирдХ рдиреЛрдб.рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХреЛ рджреЛрдиреЛрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдкрдирд╛ рд╕рдордХрд╛рд▓рд┐рдХ рд╕рдордХрдХреНрд╖ рд╣реИред

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

 function readFileDeferred (filename, options) { var result = new Deferred; fs.readFile(filename, options, function (err, data) { if (err) { result.resolve('error', err); } else { result.resolve('success', data); } }); return result; } 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╕рдлрд▓рддрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

рдЙрдиреНрдирдд рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


1. рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдХрд▓реНрдкред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ Deferred рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рд╕рдлрд▓рддрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ред рдХреБрдЫ рднреА рдЕрдиреНрдп (рдХрд╕реНрдЯрдо) рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдордиреЗ рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрд╣ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдЧрдгрдирд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
2. рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдкреИрд░рд╛рдЧреНрд░рд╛рдл 1 рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред
3. рдЙрдк-рд╡рд╕реНрддреБ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рдирд╛ред рдпрд╣ Deferred рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ resolve рд╡рд┐рдзрд┐ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рджрд╕реНрдпрддрд╛ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реБрдзрд╛рд░ рдХрд╛ рд╕рд╛рд░ promise рд╡рд┐рдзрд┐ рдХреА рд╢реБрд░реВрдЖрдд рд╣реИ, рдЬреЛ рдХрд┐ Deferred рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ "рд╕рдмрд╕реЗрдЯ" рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рд╕рджрд╕реНрдпрддрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
4. рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд░рд╛рдЬреНрдп рдХреЛ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред рдпрд╣ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
5. рдЖрд╕реНрдердЧрд┐рдд рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдЬреЛ рдЕрдиреНрдп рдЖрд╕реНрдердЧрд┐рдд рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реБрдзрд╛рд░ рдХрд╛ рд╕рд╛рд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдирд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдо рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ readFileDeferred рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

 var r1 = readFileDeferred('./session.data'), r2 = readFileDeferred('./data/user.data'); var r3 = Deferred.all(r1, r2); r3.on('success', function (session, user) { session = JSON.parse(session); user = JSON.parse(user); console.log('All data recieved', session, user); }).on('error', function (err_code) { console.error('Error occured', err_code); }); 

Deferred.all рдПрдХ рдирдИ Deferred рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдиреЗ рдкрд░ рд╕рднреА рддрд░реНрдХ рдкрд╛рд╕ рд╣реЛрдиреЗ рдкрд░ рд╕рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдкрд░, рдЗрд╕реЗ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рдЖрд╕реНрдердЧрд┐рдд рдХреЗ рдкрд░рд┐рдгрд╛рдо рднреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рдпрджрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рддрд░реНрдХ рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Deferred.all рдХрд╛ рдкрд░рд┐рдгрд╛рдо рднреА рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЧрдП рддрд░реНрдХ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛


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

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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЙрд▓ рдирд┐рдореНрди рд░реВрдк рд▓реЗ рд╕рдХрддреА рд╣реИ:
 callback.call(this, X, Y); 

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

рдореМрдЬреВрджрд╛ рдЯрд╛рд▓ рджрд┐рдпрд╛


1. jQuery рдореЗрдВ $.Deferred рдСрдмреНрдЬреЗрдХреНрдЯ ( рдкреНрд░рд▓реЗрдЦрди ) рд╣реИред рдпрд╣ рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреНрд░реБрдЯрд┐, рдкреНрд░рдЧрддрд┐ рдХреА рд╕реВрдЪрдирд╛рдПрдВ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ: рдкрд░рд┐рдгрд╛рдо рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрддреНрдкрдиреНрди рдордзреНрдпрд╡рд░реНрддреА рдШрдЯрдирд╛рдПрдВ; рдЖрдк рд░рд╛рдЬреНрдп рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп Deferred ( then рдкрджреНрдзрддрд┐) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк Deferred рдХреЛ рд╕реВрдЪреА ( $.when ) рд╕реВрдЪреА рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдПрдХ promise рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА ajax рд╡рд┐рдзрд┐рдпрд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рддреА рд╣реИрдВред
2. q рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЖрдк рдЖрд╕реНрдердЧрд┐рдд рд╕реВрдЪреА рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЖрд╕реНрдердЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
3. async.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ / рдореИрдк / рдХрдо рдХрд░рдиреЗ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓ рдХреЗ рдЪреЗрди рдФрд░ рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
4. рдЬрдм .js рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
5. Dojo рдЯреВрд▓рдХрд┐рдЯ рдореЗрдВ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ ( рдкреНрд░рд▓реЗрдЦрди ) рд╣реЛрддрд╛ рд╣реИред
6. рдкрд╛рдпрдерди рдХреА рднрд╛рдИ рднрд╛рд╖рд╛ рдореЗрдВ, рдШрдЯрдирд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдореБрдбрд╝ рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ ( рдкреНрд░рд▓реЗрдЦрди ) рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рд╕реНрдердЧрд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкреВрд░реНрд╡рдЬ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рд╕рдлрд▓рддрд╛, рддреНрд░реБрдЯрд┐ рдФрд░ рджреЛрдиреЛрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред
7. рдбрд┐рдлрд░реНрдб рдореЗрдВ рдореЗрд░реА рд░реБрдЪрд┐ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ ( рдкреНрд░рд▓реЗрдЦрди , рд╕реНрд░реЛрдд рдХреЛрдб , рдкрд░реАрдХреНрд╖рдг ) рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред

рдпрд╣ рд╕рдм, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In175947/


All Articles