рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдФрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдкрд┐рдЫрд▓реА рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдХреЛред рдХрд╛рд░реНрдпрджрд┐рд╡рд╕ рдХреА рдЧрддрд┐ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдмрдврд╝рддреА рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣реА рд╣реИред рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЛ рдирд╣реАрдВ рд░рд╣реА рд╣реИ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрдИ рдЖрд╢реНрдЪрд░реНрдп рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣реА рд╣реИ, рдФрд░ рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдХреЛрдИ рднреА рдКрдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХреА рдЬрд╛ рд░рд╣реА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдорд┐рд╕ (рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рдж - рд╡рд╛рджреЗ, рдХреГрдкрдпрд╛ рдЬреНрдпрд╛рджрд╛ рдордд рдорд╛рд░реЛ) - рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬрд┐рд╕реЗ рдХрдИ рд▓реЛрдЧ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдореВрд▓ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рд╡рд╛рджреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдХреНрдпрд╛ рдЦрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдЬреЗрдХ рдЖрд░реНрдЪреАрдмрд╛рд▓реНрдб рдХреЗ рдПрдХ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд╡рд╛рдж (рдереЛрдбрд╝рд╛ рдореБрдХреНрдд) рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрджреЗрд╡рд┐рдпреЛрдВ рдФрд░ рд╕рдЬреНрдЬрдиреЛрдВ, рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рднрд╡реНрдп рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдЗрдП ...
[рдбреНрд░рдо рд░реЛрд▓]
рд╡рд╛рджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рджреЗрд╢реА рдмрди рдЬрд╛рддреЗ рд╣реИрдВ!
[рд╣рд░ рдЬрдЧрд╣ рдЖрддрд┐рд╢рдмрд╛рдЬреА рдХреА рдЧрд░реНрдЬрдирд╛, рднреАрдбрд╝ рдЦреБрд╢ рд╣реЛ рдЬрд╛рддреА рд╣реИ]
рдлрд┐рд▓рд╣рд╛рд▓, рдЖрдкрдХреЛ рдирд┐рдореНрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд▓реЛрдЧ рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреБрд╢реА рдордирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдЬрдп рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдЖрдк рдЕрднреА рднреА рдЗрди "рдкреНрд░реЙрдорд┐рд╕" рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдХрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЭрдХрдЭреЛрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдХрдИ рдЧреБрдирд╛ рдЪрдордХрддреЗ рдХрдВрдлрд╝реЗрджреНрджреА рдХрд╛ рднрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдЬрдм рддрдХ рдореИрдВрдиреЗ рдЗрд╕ рдЪреАрдЬ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рддрдм рддрдХ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рд╛рд▓реЛрдВ рд▓рдЧ рдЧрдПред рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рддреБрдо рдЪрд┐рд▓реНрд▓рд╛рддреА рд╣реЛред рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╡рд╛рджреЛрдВ рд╕реЗ рдЗрди рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдПрдкреАрдЖрдИ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрдВ рдХрд┐рд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛? рддрдм рдЖрдк рд╢рд╛рдпрдж рдпрд╣рд╛рдБ рд╣реИрдВ ред
- рдЖрдк рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЗрди рд╕рд┐рдВрдкрд▓рдЯрди рдХреЗ рджреНрд░рд╡реНрдпрдорд╛рди рдореЗрдВ рдЙрд▓реНрд▓рд╛рд╕ рд╕реЗ рдШрд┐рд░рддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рд░рдкрдЯ рджреМрдбрд╝рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рдЦрдмрд░ рдереАред рдЕрдкрдиреА рдЧрддрд┐ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рд▓реЗрдВ, рдФрд░ рдлрд┐рд░ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдЖрд╢реНрд╡рд╕реНрдд рдХрджрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рд╣рд░ рдХреЛрдИ рдХреНрдпреЛрдВ рдирд╛рдЪ рд░рд╣рд╛ рд╣реИ?
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рджреЛ рдЯреБрдХрдбрд╝реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реАрдо рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддрдХ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрд╕реА рд▓рд╛рдЗрди рдореЗрдВ рд╣реИ рдЬреЛ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ, рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреИрд╕реЗ рдкрд╛рда рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдФрд░ рдлрд╝реЙрд░реНрдо рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рдирд╛) рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рд╕реЗ рдкреВрд░реА рдХрддрд╛рд░ рдзреАрдореА рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдПрдХ рдЗрдВрд╕рд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдмрд╣реБрдЖрдпрд╛рдореА рд╣реИрдВред рдЖрдк рдЕрдЧрд▓реА рдореЗрдЬ рдкрд░ рдмреИрдареЗ рдХрд┐рд╕реА рд╕рд╣рдХрд░реНрдореА рдХреА рдЯреЗрд▓реАрдлреЛрди рдкрд░ рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЕрдкрдиреА рд╕рднреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдФрд░ рдИрдЧреЛрд╡реЙрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЪрд╛рдмрд┐рдпреЛрдВ рдкрд░ рд╣рдереМрдбрд╝рд╛ рдорд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдмреАрдЪ рдирд┐рд░реНрдорд┐рдд рдПрдХрдорд╛рддреНрд░ рдЕрд╡рд░реЛрдзрдХ рд╕реБрд╡рд┐рдзрд╛ рдЫреАрдВрдХ рд░рд╣реА рд╣реИред рдЫреАрдВрдХ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд░реНрддрдорд╛рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдЖрдк рдЧрд╛рдбрд╝реА рдЪрд▓рд╛ рд░рд╣реЗ рд╣реЛрдВ рдФрд░ рдЙрд╕реА рд╕рдордп рдлреЛрди рдкрд░ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдереЛрдбрд╝рд╛ рдЧреБрд╕реНрд╕рд╛ рдЖрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдЫреАрдВрдХ рдЖрдк рдкрд░ рд╣рдорд▓рд╛ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреЛрдб рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рднреА рдЧреНрд░рд╕реНрдд рд╣реЛред
рд╕рдВрднрд╡рддрдГ, рдЗрд╕рд╕реЗ рдЦреБрдж рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рдПрдХ рдЗрд╡реЗрдВрдЯ рдореЙрдбрд▓ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
var img1 = document.querySelector('.img-1'); img1.addEventListener('load', function() {
рдХреЛрдИ рдЕрд╡рд░реЛрдзрдХ рдХреЛрдб рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рдПрдХ рдЫрд╡рд┐ рд▓реА, рдЙрд╕ рдкрд░ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд▓рдЯрдХрд╛ рджреА, рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдиреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдШрдЯрдирд╛рдПрдБ рддрдм рд╣реЛрдВрдЧреА рдЬрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ
complete
рдЫрд╡рд┐ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
var img1 = document.querySelector('.img-1'); function loaded() {
рдмреБрд░рд╛ рдХрд╛рдо рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВред рд╕рднреА рд╕рдорд╛рди, рдпрд╣ рд╣рдореЗрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рджреЗрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдЙрд╕ рд╕рдордп рддрдХ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рд╕реБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛ред рдбреЛрдо рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ рд╣рдореЗрдВ рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдПрдХ рдкреИрдХреЗрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрдВрдд рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╡реЗрдВрдЯ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдЬрдм рд╣рдо рдПрдХ рддрддреНрд╡ рдкрд░ рдХрдИ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╢реНрд░реЛрддрд╛ рдПрдХ рдорд╣рд╛рди рдЪреАрдЬ рд╣реЛрддреЗ рд╣реИрдВ - рдХреАрдк, рдЯрдЪрд╕реНрдЯрд╛рд░реНрдЯ рдЖрджрд┐ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рд╕реЗ, рдЖрдк рдЗрд╕ рдмрд╛рдд рд╕реЗ рдмрд╣реБрдд рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рдЯрдХрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдкрдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо (рд╕рдлрд▓рддрд╛ / рд╡рд┐рдлрд▓рддрд╛) рдХреЗ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ:
img1.callThisIfLoadedOrWhenLoaded(function() {
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡рд╛рджреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рдирд╛рдореЛрдВ рдХреЗ рддрд╣рддред рдпрджрд┐ HTML рдЫрд╡рд┐ рдореЗрдВ рдПрдХ
ready
рддрд░реАрдХрд╛ рдерд╛ рдЬреЛ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
img1.ready().then(function() {
рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, рдЗрд╕рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╡рд╛рджреЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ:
- рдПрдХ рд╡рд╛рджрд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рддреЛ рд╕рдлрд▓рддрд╛ рд╕реЗ рдпрд╛ рдЧрд▓рддреА рд╕реЗ, рдФрд░ рдХреЛрдИ рдЕрдиреНрдп рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рджреЛ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдпрджрд┐ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрдк рдЙрд╕реЗ рдХреЙрд▓рдмреИрдХ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХрд┐ рдШрдЯрдирд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реБрдИ рд╣реИред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмреЗрд╣рдж рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреА рд░реБрдЪрд┐ рддрдм рдирд╣реАрдВ рд╣реЛрддреА рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд╣рд╛рдВ рд╣реБрдЖ рдерд╛, рд▓реЗрдХрд┐рди рдЬреЛ рд╣реБрдЖ, рдЙрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рд╡рдЪрди рд╢рдмреНрджрд╛рд╡рд▓реА
рдбреЛрдорд┐рдирд┐рдХ рдбреЗрдирд┐рдХреЛрд▓рд╛ рдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдкрд╣рд▓рд╛ рдорд╕реМрджрд╛ рдкрдврд╝рд╛ рдФрд░ рдореБрдЭреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рджреАред рд╕рдЬрд╛ рдореЗрдВ, рдЙрд╕рдиреЗ рдореБрдЭреЗ рд╕рдВрднрд╛рд╡рд┐рдд "
рд╢рд░реНрддреЛрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╡рд╛рджреЛрдВ " рдкрд░ рд╕реМ рдЧреБрдирд╛ рдкреНрд░рд╛рд╡рдзрд╛рдиреЛрдВ рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдореЗрд░реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдорд╛рдлреА рдорд╛рдВрдЧрдиреЗ рд╡рд╛рд▓рд╛ рдкрддреНрд░ рд▓рд┐рдЦрд╛ред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореИрдВ рдЕрднреА рднреА рдорд┐рд▓рд╛ рд╣реБрдЖ рд╣реВрдВ, рдФрд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдкрд░ рдЖрдпрд╛ рд╣реВрдВ:
рдПрдХ рд╡рд╛рджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
- рдкреВрд░рд╛ - рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реБрдЖ
- рдЕрд╕реНрд╡реАрдХреГрдд - рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╣реБрдЖ
- рд▓рдВрдмрд┐рдд - рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ
- рдмрд╕реЗ - рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг
then
рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдорд╛рди рд╡рд╕реНрддреБ рдХреЗ рд╡рд╛рджреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди
thenable
рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╢рдмреНрдж рдореБрдЭреЗ рдкреВрд░реНрд╡-рдЕрдВрдЧреНрд░реЗрдЬреА рдлреБрдЯрдмреЙрд▓ рдкреНрд░рдмрдВрдзрдХ
рдЯреЗрд░реА рд╡реЗрдирдмрд▓реНрд╕ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд░реВрдВрдЧрд╛ред
рд╡рд╛рджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ!
рдЗрди рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд╛рджреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдореЗрдВ рдШреЗрд░реЗ рд╣реБрдП рд╣реИрдВ:
рдКрдкрд░ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЙрди рдорд╛рдирдХреАрдХреГрдд
рд╡рд╛рджреЛрдВ / A + рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ
Deffered рдирд╛рдордХ рдХреБрдЫ рд╣реИред рдЬреЛ рдХреБрдЫ рднреА рдерд╛, рдбреЗрдлрд░реНрдб рдХреЗ рд╡рд╛рджреЗ / рдП + рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЕрд╕рдВрдЧрдд рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ
рдХрдо рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╛рди рдХреЛ рддреЗрдЬ рд░рдЦреЗрдВред JQuery рднреА
рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд╛рджрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ Deffered рдХреЗ рдЦреЗрддреЛрдВ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рд╕рднреА рд╡рд╛рджреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд╛рдирдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдЕрд▓рдЧ рд╣реИрдВред рдореВрд▓ рд╡рд╛рджрд╛ API RSVP.js. рдХреЗ рд╕рдорд╛рди рд╣реИред
var promise = new Promise(function(resolve, reject) {
рд╡рд╛рджрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдПрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди:
resolve
рдФрд░
reject
ред рдпрд╣ рд╕рд░рд▓ рд╣реИ, рдЖрдк рдХреЙрд▓рдмреИрдХ рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рднреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЖрдк рд╕рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
resolve
рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
reject
ред
рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ
throw
рддрд░рд╣, рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╣реЛрдиреЗ рд╕реЗ рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рджрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
promise.then(function(result) { console.log(result);
рдбреЛрдо рдореЗрдВ рд╡рд╛рджреЗ рдХрд╛ рдорд╛рдирдХреАрдХрд░рдг "рдлреНрдпреВрдЪрд░реНрд╕" рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖ, рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "рд╡рд╛рджрд╛" рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рд╕реЗ рдЕрд▓рдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд╛рджреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕реБрдВрджрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдЬреИрд╕реЗ рдХрд┐ Node.js. рдореЗрдВ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡реЗ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдмрджрд▓ рдЧрдП, рд▓реЗрдХрд┐рди рдбреЛрдо рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рдирд╣реАрдВ рдХрд░рддреЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдСрд▓-рдиреНрдпреВ DOM API, рдкреНрд░реЙрдорд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЕрдм рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдХреЛрдЯрд╛ рдкреНрд░рдмрдВрдзрди ,
рдлреЙрдиреНрдЯ рд▓реЛрдб рдЗрд╡реЗрдВрдЯреНрд╕ ,
рд╕рд░реНрд╡рд┐рд╕рд╡реЙрдХрд░ ,
рд╡реЗрдм рдорд┐рдбреА ,
рд╕реНрдЯреНрд░реАрдо рдФрд░ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕рдорд░реНрдерди
рдлрд┐рд▓рд╣рд╛рд▓, рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╡рд╛рджреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдереЛрдбрд╝рд╛ рд╕реАрдорд┐рдд рд╣реИред
рдХреНрд░реЛрдо рдореЗрдВ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб
рдХреИрдирд░реА , рд╡рд╣рд╛рдБ рд╡рд╛рджреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рдЕрдиреБрдпрд╛рдпрд┐рдпреЛрдВ рдХреЗ рд░реИрдВрдХ рд╕реЗ рдПрдХ рд╕рд┐рдкрд╛рд╣реА рд╣реИрдВ, рддреЛ рдирд╡реАрдирддрдо
рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕рдореЗрдВ рд╡рд╛рджреЗ рднреА рд╣реИрдВред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╡рд╛рджреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╣реАрдВ рднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЖрдк
рдмрдЧрдЬрд╝рд┐рд▓рд╛ рдкрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдирд╡реАрдирддрдо рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо
рдирд╡рд╛рдЪрд╛рд░ рдмреЛрд░реНрдб ред
рд╡рд╛рджреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдФрд░ Node.js рдХреЗ рд╡рд╛рджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ
рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рджрд╛ рдПрдкреАрдЖрдИ
then
рд╡рд┐рдзрд┐ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рджрд╛ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд╛рджрд╛ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдЗрд╕реЗ рддрдм рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдПрдХ
Promise.cast
рд╡рд┐рдзрд┐ рднреА рд╣реИ рдЬреЛ рдЗрдирд▓рд╛рдЗрди рдФрд░ рдХрд╕реНрдЯрдо рдкреНрд░реЙрдорд┐рд╕ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдорд┐рдЯрд╛ рджреЗрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ Q рдЬреИрд╕реЗ рд╡рд╛рджреЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдареАрдХ рд╣реИ, рд╡реЗ рдореВрд▓ JavaScrip рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЪреЗрддрд╛рд╡рдиреА рджреА рдереА, JQuery рдХреЗ рдбрд┐рдлреНрд░реЗрдбреНрд╕ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИрдВ ... рдЕрд▓рдЧред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдорд╛рдирдХ рдкрд░ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
var jsPromise = Promise.cast($.ajax('/whatever.json'));
рдпрд╣рд╛рдВ jQuery рдХрд╛ Riva
$.ajax
рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдпрд╣ рдПрдХ
then
рд╡рд┐рдзрд┐ рд╣реИ,
Promist.cast
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╛рджрд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдмрд╛рд░, Deffered рдиреЗ рдЕрдкрдиреЗ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рддрд░реНрдХ рджрд┐рдП:
var jqDeferred = $.ajax('/whatever.json'); jqDeferred.then(function(response, statusText, xhrObj) {
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рд╡рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЙрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЬрд╛рдирдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐
reject
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рдХреЛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореНрдореЗрд▓рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ
рддреЛ, рдЪрд▓реЛ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдХреЛрдб рдХрд░рддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
- рд▓реЛрдб рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШреВрд░реНрдгрди рдЖрдЗрдХрди рджрд┐рдЦрд╛рдПрдВ
- рдПрдХ рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреБрдЫ JSON рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдзреНрдпрд╛рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реАрд░реНрд╖рдХ рдФрд░ URL рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реЛ
- рдкреГрд╖реНрда рдореЗрдВ рд╢реАрд░реНрд╖рдХ рдЬреЛрдбрд╝реЗрдВ
- рд╕рднреА рдЕрдзреНрдпрд╛рдпреЛрдВ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
- рдЙрди рд╕рднреА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- рдбрд╛рдЙрдирд▓реЛрдб рд╕реВрдЪрдХ рдЫреБрдкрд╛рдПрдВ
... рдФрд░ рдЕрдЧрд░ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рдж рд╕рдВрдХреЗрддрдХ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реНрдерд╛рдпреА рд░реЛрдЯреЗрд╢рди рд╕реЗ рдЪрдХреНрдХрд░ рдЖрдиреЗ рдХрд╛ рдХрд╛рд░рдг рди рд╣реЛред
рдмреЗрд╢рдХ, рдЖрдк рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ
HTML рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рд╣реИ , рд▓реЗрдХрд┐рди рддреГрддреАрдп-рдкрдХреНрд╖ API рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╣рдорд╛рд░рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрдЪреНрдЫрд╛ рд╣реИ: рдЖрдк рдмрд╣реБрдд рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддрдм рдЖрдк рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдЙрди рд╕рднреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдЦреАрдВрдЪреЗрдВрдЧреЗред
XMLHttpRequest рдПрдХ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ
рдкреБрд░рд╛рдиреЗ APIs рдХреЛ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдмрд┐рдирд╛ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рдЦреЛрдПред
XMLHttpRequest
рдкрд╣рд▓рд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, GET рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ:
function get(url) {
рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
get('story.json').then(function(response) { console.log("!", response); }, function(error) { console.error("!", error); });
рдЕрдм рд╣рдо
XMLHttpRequest
рдЯрд╛рдЗрдк рдХрд┐рдП рдмрд┐рдирд╛ HTTP рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
XMLHttpRequest
рдХреЗ рдКрдВрдЯ рд╕рдВрдХреЗрддрди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рд╡рд┐рд╖рд╛рдХреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреЙрд▓ рдЪреЗрди
then
рдпрд╣ рдХрд╣рд╛рдиреА рдХрд╛ рдЕрдВрдд рдирд╣реАрдВ рд╣реИ, рдЖрдк
then
рдХреЙрд▓-рдЯреВ-рдПрдВрдб-рдПрдВрдб-рдЯреВ-рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реМрдЯреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореВрд▓реНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдирдпрд╛ рд░рд┐рдЯрд░реНрди рджреЗрдХрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдореВрд▓реНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var promise = new Promise(function(resolve, reject) { resolve(1); }); promise.then(function(val) { console.log(val);
рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╣рдо рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ:
get('story.json').then(function(response) { console.log("!", response); });
рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рд╣рдореЗрдВ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкрд╛рда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдХреА
responseType
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╡рд╛рджреЛрдВ рдХреА рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛ рд╕реЗ рд╕реИрд░ рдХреЗ рд▓рд┐рдП рднреА рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:
get('story.json').then(function(response) { return JSON.parse(response); }).then(function(response) { console.log(" JSON!", response); });
рд╡реИрд╕реЗ,
JSON.parse
рдПрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдореВрд▓реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдмрд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
get('story.json').then(JSON.parse).then(function(response) { console.log(" JSON!", response); });
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЪреАрдиреА
getJSON
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдХреЗрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
function getJSON(url) { return get(url).then(JSON.parse); }
getJSON
рдЕрднреА рднреА рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ JSON рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдШрдЯрдирд╛ рдХрддрд╛рд░
then
рдЖрдк рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдЖрдк
then
рдХреЙрд▓рдмреИрдХ рд╕реЗ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ,
then
рдереЛрдбрд╝рд╛ рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдорд╛рди рдЕрдЧрд▓реЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд╛рджреЗ рдХреА рддрд░рд╣ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реЗ рдПрдХ
then
рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
getJSON('story.json').then(function(story) { return getJSON(story.chapterUrls[0]); }).then(function(chapter1) { console.log(" !", chapter1); });
рдпрд╣рд╛рдВ рд╣рдо
story.json
рд▓рд┐рдП рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ URL рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реЗрдм рдПрдХ рд╕реЗрдм рдХреЗ рдкреЗрдбрд╝ рд╕реЗ рдХрд┐рддрдиреА рджреВрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдХреЙрд▓рдмреИрдХ рдкреИрдЯрд░реНрди рдкрд░ рд╡рд╛рджреЛрдВ рдХрд╛ рд▓рд╛рдн рдЖрдкрдХреА рдЖрдВрдЦреЛрдВ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИред рдЖрдк рд▓реЗрдЦ рдЕрдиреБрд░реЛрдз рдХреЗ рддрд░реНрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
var storyPromise; function getChapter(i) { storyPromise = storyPromise || getJSON('story.json'); return storyPromise.then(function(story) { return getJSON(story.chapterUrls[i]); }) }
рд╣рдо
story.json
рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рддрдХ рдХрд┐ рдкрд╣рд▓реА рдХреЙрд▓ рдХреЛ
getChapter
, рдФрд░ рдирд┐рдореНрди рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
getChapter
рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╡рд╛рджреЗ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдУрд╣, рдпреЗ рд╡рд╛рджреЗ!
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛,
then
рджреЛ рддрд░реНрдХ рд▓реЗрддреЗ рд╣реИрдВ, рдПрдХ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд╛рджреЛрдВ рдХреА рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдкреВрд░реНрдг рдФрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░):
get('story.json').then(function(response) { console.log("!", response); }, function(error) { console.log("!", error); });
рдЖрдк
catch
рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
get('story.json').then(function(response) { console.log("!", response); }).catch(function(error) { console.log("!", error); });
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдпрд╣
then(undefined, func)
рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрдардиреАрдп рдЪреАрдиреА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рджреЛ рдЯреБрдХрдбрд╝реЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ; рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
get('story.json').then(function(response) { console.log("!", response); }).then(undefined, function(error) { console.log("!", error); });
рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЫреЛрдЯрд╛ рдЕрдВрддрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдПрдХ рд╡рд╛рджрд╛ (рдЕрд╕реНрд╡реАрдХреГрддрд┐) рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐
then
рдХреЙрд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╛
catch
, рдЬреЛ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ) рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕рд╛рдордирд╛ рди рдХрд░реЗред
then(func1, func2)
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
func1
рдФрд░
func2
рджреЛрдиреЛрдВ рдХреЛ рдХрднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди
then(func1).catch(func2)
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рджреЛрдиреЛрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╛рджрд╛
func1
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдордЬрд╝реЗ рдХрд░реЗрдВ:
asyncThing1().then(function() { return asyncThing2(); }).then(function() { return asyncThing3(); }).catch(function(err) { return asyncRecovery1(); }).then(function() { return asyncThing4(); }, function(err) { return asyncRecovery2(); }).catch(function(err) { console.log("Don't worry about it"); }).then(function() { console.log("All done!"); });
рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдирдХ
try/catch
рд╕рдорд╛рди рд╣реИ,
try
рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реБрдИ рддреНрд░реБрдЯрд┐ рддреБрд░рдВрдд
catch
рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдБ рдКрдкрд░ рдХреЗ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдореИрдВ рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ) рдХрд╛ рдПрдХ рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рд╣реИ:

рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реНрдг рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд╛рд▓ рддреАрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд░реЗ рддреАрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрд╡рд╛рдж рдФрд░ рд╡рд╛рджреЗ
рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рди рдХреЗрд╡рд▓ рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд╛рджреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдирд┐рд░реНрдорд╛рдг рдХреЙрд▓рдмреИрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
var jsonPromise = new Promise(function(resolve, reject) {
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╕рднреА рд╡рд╛рджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рдо рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЖрдк рд╡рд╛рджреЗ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рд╣реА рдмрд╛рдд рддрдм рд╣реЛрдЧреА рдЬрдм рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
get('/').then(JSON.parse).then(function() {
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ
рд╣рдорд╛рд░реА рдХрд╣рд╛рдиреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рд╡рд┐рдЦрдВрдбрд┐рдд, рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
catch
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
getJSON('story.json').then(function(story) { return getJSON(story.chapterUrls[0]); }).then(function(chapter1) { addHtmlToPage(chapter1.html); }).catch(function() { addTextToPage(" "); }).then(function() { document.querySelector('.spinner').style.display = 'none'; });
рдЕрдЧрд░
story.chapterUrls[0]
рд▓рд┐рдП рдЕрдиреБрд░реЛрдзред , рдХреЛ рднреА рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рддреБрд░рдВрдд рдкрд╣рд▓реА рддреНрд░реБрдЯрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЙрд▓рдмреИрдХ рдкрд░ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдЕрдзреНрдпрд╛рдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде" рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦреЗрдЧрд╛ рдпрджрд┐ рдкрд┐рдЫрд▓реЗ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдорд╛рдирдХ
try/catch
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
try/catch
рддреНрд░реБрдЯрд┐ рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рд╕рдВрдХреЗрддрдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЫрд┐рдкрд╛рдПрдВрдЧреЗ, рдЬреЛ рдХрд┐ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрд╡рд░реБрджреНрдз рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
try { var story = getJSONSync('story.json'); var chapter1 = getJSONSync(story.chapterUrls[0]); addHtmlToPage(chapter1.html); } catch (e) { addTextToPage(" "); } document.querySelector('.spinner').style.display = 'none';
рд╢рд╛рдпрдж рдЖрдк рдереЛрдбрд╝реА рджреЗрд░ рдкрд╣рд▓реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ
getJSON
рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
function getJSON(url) { return get(url).then(JSON.parse).catch(function(err) { console.log("getJSON ", url, err); throw err; }); }
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрдзреНрдпрд╛рдп рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣реЗ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрди рд╕рднреА рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЪрд▓реЛ рдХрд░рддреЗ рд╣реИрдВред
рдХрдВрд╕реАрдбрд░ рдФрд░ рдХрддрд╛рд░ - рджреЛрдиреЛрдВ рдХрд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд▓реЗрдВ
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕реЛрдЪрдирд╛ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдореГрдд рдЕрдВрдд рдореЗрдВ рд╣реИрдВ, рддреЛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ:
try { var story = getJSONSync('story.json'); addHtmlToPage(story.heading); story.chapterUrls.forEach(function(chapterUrl) { var chapter = getJSONSync(chapterUrl); addHtmlToPage(chapter.html); }); addTextToPage("All done"); } catch (err) { addTextToPage("- : " + err.message); } document.querySelector('.spinner').style.display = 'none';
рдпрд╣
рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ! рд▓реЗрдХрд┐рди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмреВрдЯ рд╕рдордп рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмреНрд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
then
рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
getJSON('story.json').then(function(story) { addHtmlToPage(story.heading);
рд▓реЗрдХрд┐рди рд╣рдо рдХреНрд░рдо рдореЗрдВ рд╕рднреА рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ? рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
story.chapterUrls.forEach(function(chapterUrl) {
forEach
рдХрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЛ рдкреЗрдЬ рдкрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ "рдкрд▓реНрдк рдлрд┐рдХреНрд╢рди" рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд▓реНрдк рдлрд┐рдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЪрд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ ...
рд╣рдордиреЗ рд╕рдм рдХреБрдЫ рдХрддрд╛рд░ рдореЗрдВ рд▓рдЧрд╛ рджрд┐рдпрд╛
рд╣рдо рд╡рд╛рджреЗ рдХреА рдХрддрд╛рд░ рдореЗрдВ рдЕрдкрдиреЗ
chaptersUrls
рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣рд╛рдБ рд╣рдо рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИрдВ рдФрд░ рдлреИрдХреНрдЯреНрд░реА рдкрджреНрдзрддрд┐
Promise.resolve
рдкрд░рд┐рдЪрд┐рдд рд╣реБрдП, рдЬреЛ рдЙрд╕ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рддреБрд░рдВрдд рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЙрд╕реЗ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрд╕реЗ рдПрдХ рд╡рд╛рджреЗ рдХреА рддрд░рд╣ рдХреБрдЫ рджреЗрддреЗ рд╣реИрдВ (рдРрд╕реА рдЪреАрдЬрд╝ рдЬрд┐рд╕рдореЗрдВ
then
рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИ), рд╡рд╣ рдЙрд╕рдХреА рдПрдХ рдкреНрд░рддрд┐ рд▓реМрдЯрд╛ рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рддрд░реНрдХ рдХреЗ рдмрд┐рдирд╛
Promise.resolve
рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдлрд▓ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдПрдХ
Promise.reject(val)
рд╡рд┐рдзрд┐ рднреА рд╣реИ,
Promise.reject(val)
, рдЬреЛ рдПрдХ рд╡рд╛рджрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде
Promise.reject(val)
рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕реЗ (рдпрд╛
undefined
) рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо
array.reduce
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдЫреЛрдЯрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣рд╛рдВ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реА рдмрд╛рдд рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд▓реВрдк рдХреЗ рдмрд╛рдж рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЪрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдХрдорд┐рдВрдЧ рдХреЙрд▓рдмреИрдХ рдХреЛ рдПрд░реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрддрд╛рд░, рдкрд╣рд▓реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рдкрд╛рд░рд┐рдд рдХреА рдЧрдИ, рдпрд╣ рд╣реИ Promise.resolve()
, рд▓реЗрдХрд┐рди рдХреЙрд▓рдмреИрдХ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рдкрд┐рдЫрд▓реА рдХреЙрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред array.reduce
рдЬрдм рдЖрдк рдХрд┐рд╕реА рдПрдХрд▓ рдорд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд╛рджрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИредрдЖрдЗрдП рдбрд╛рд▓рддреЗ рд╣реИрдВ рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде ... getJSON('story.json').then(function(story) { addHtmlToPage(story.heading); return story.chapterUrls.reduce(function(sequence, chapterUrl) { return sequence.then(function() {
рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣реБрдЖ! рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдПрдХ рдкреВрд░реНрдг рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХреЗрдВрдЧреЗред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:
рдмреНрд░рд╛рдЙрдЬрд╝рд░реНрд╕ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдФрд░ рд╣рдо рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдЕрдзреНрдпрд╛рдп рд▓реЛрдб рдХрд░рдХреЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рд╣рдо рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬрдм рд╡реЗ рд╕рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдПрдкреАрдЖрдИ рд╣рдореЗрдВ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: Promise.all(arrayOfPromises).then(function(arrayOfResults) {
Promise.all
рд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рддрднреА рдкреВрд░рд╛ рд╣реЛрдЧрд╛ рдЬрдм рд╕рднреА рд╡рд╛рджреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реЗ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рджрд╛ рдХреЙрд▓рдмреИрдХ then
рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред getJSON('story.json').then(function(story) { addHtmlToPage(story.heading);
рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЬрдм рдЖрдк рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдЕрдзреНрдпрд╛рдп рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛рдлреА рддреЗрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИ , рдФрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдпрд╛рд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдХреЛрдб рд╣реИред рдЕрдзреНрдпрд╛рдп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд╛рдВрдЫрд┐рдд рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред
рдЬреЛ рднреА рд╣реЛ, рд╣рдо рдЕрднреА рднреА рдЕрдкрдиреЗ рдХрдерд┐рдд рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдкрд╣рд▓рд╛ рдЕрдзреНрдпрд╛рдп рдЖрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╢реЗрд╖ рдЕрдзреНрдпрд╛рдп рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓реЗрдЧрд╛ред рдпрджрд┐ рддреАрд╕рд░рд╛ рдЕрдзреНрдпрд╛рдп рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рджреЛ рдЕрдзреНрдпрд╛рдп рдЧрд╛рдпрдм рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рд╕рднреА рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВредрдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрдкрдиреЗ рд╕рднреА рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЗ рд▓рд┐рдП JSON рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрддрд╛рд░ рдмрдирд╛рдПрдБ: getJSON('story.json').then(function(story) { addHtmlToPage(story.heading);
рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдкрддреНрдерд░ рд╕реЗ рджреЛ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рдорд╛рд░ рджрд┐рдпрд╛ ред рд╣рдо рдПрдХ рд╕рд╛рде рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдзреАрдореЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЛ рдереЛрдбрд╝рд╛ рдкрд╣рд▓реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдЖрджрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрдзреНрдпрд╛рдп рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ; рдЗрд╕ рддрдХрдиреАрдХ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд╛рдн рдмрд╣реБрдд рдмрдбрд╝реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдХреЙрд▓рдмреИрдХ рдФрд░ Node.js рдШрдЯрдирд╛рдУрдВ рдХреА рд╢реИрд▓реА рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд▓рдЧрднрдЧ рдЖрдзреЗ рд╕реЗ рджреЛрдЧреБрдирд╛ рдХрд░ рджреЗрдЧрд╛ ред рдПрдХ рд░рд╛рд╕реНрддрд╛ рдпрд╛ рджреВрд╕рд░рд╛, рдпрд╣ рд╡рд╛рджреЛрдВ рдХреА рдХрд╣рд╛рдиреА рдХреЗ рдЕрдВрдд рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рдЖрдЗрдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рдЕрдиреНрдп рдирдИ ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ ...рдЫреЛрдЯрд╛ рдмреЛрдирд╕: рд╡рд╛рджреЗ рдФрд░ рдЬрдирд░реЗрдЯрд░
рдЕрдЧрд▓рд╛, рд╣рдо рдирдИ ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдореВрд╣ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЖрдЬ рдЖрдкрдХреЛ рд╡рд╛рджреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЖрдЧрд╛рдореА рдмреНрд▓реЙрдХрдмрд╕реНрдЯрд░ рдХреЗ рдЯреНрд░реЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪреЗрдВредрдИрдПрд╕ 6 рд╣рдореЗрдВ рдЬрдирд░реЗрдЯрд░ рднреА рджреЗрддрд╛ рд╣реИ ред рд╡реЗ рд╣рдореЗрдВ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рд╣рдо рдЙрд╕реА рдмрд┐рдВрджреБ рдФрд░ рдЙрд╕реА рд░рд╛рдЬреНрдп рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред function *addGenerator() { var i = 0; while (true) { i += yield i; } }
рдШреЛрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рдордиреЗ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдПрдХ рдЬрдирд░реЗрдЯрд░ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдХреАрд╡рд░реНрдб yield
рд╣рдорд╛рд░реА рд╡рд╛рдкрд╕реА / рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдмрд┐рдВрджреБ рд╣реИред рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣: var adder = addGenerator(); adder.next().value;
рд▓реЗрдХрд┐рди рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдЬрдирд░реЗрдЯрд░ рд╣рдореЗрдВ рдХреНрдпрд╛ рд▓рд╛рдн рджреЗрддреЗ рд╣реИрдВ? рдЖрдУ, рдЖрдк рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рджрд┐рдЦрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВред рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ yield
рдПрдХ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ ред function spawn(generatorFunc) { function continuer(verb, arg) { var result; try { result = generator[verb](arg); } catch (err) { return Promise.reject(err); } if (result.done) { return result.value; } else { return Promise.cast(result.value).then(onFulfilled, onRejected); } } var generator = generatorFunc(); var onFulfilled = continuer.bind(continuer, "next"); var onRejected = continuer.bind(continuer, "throw"); return onFulfilled(); }
... рдпрд╣ рдХреНрдпреВ рд╕реЗ рдПрдХ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИ , рдмрд╕ рджреЗрд╢реА рд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ: spawn(function *() { try {
рдпрд╣ рдХреЛрдб рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреНрд░реЛрдо рдХреИрдирд░реА рдореЗрдВ рдЖрдЬ рдХрд╛рдо рдХрд░реЗрдЧрд╛ about:flags
редрдЗрд╕ рдЙрджрд╛рд╣рд░рдг рд╕реБрд╡рд┐рдзрд╛рдУрдВ ES6 рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЬреЛрдбрд╝рддреА рд╣реИ: рд╡рд╛рджреЗ, рдЬреЗрдирд░реЗрдЯрд░ let
, for-of
ред рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ try/catch
редрднрд╡рд┐рд╖реНрдп рдирд┐рдХрдЯ рд╣реИред