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

рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧреА рдЬреЛ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрджреНрдпрдкрд┐ рд╡реЗ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЬреЛ рд╡реНрдпрдХреНрддрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рддрд╛рдЬрд╝рд╛ рдирдЬрд╝рд░ рд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЦреБрдж рдХреНрдпрд╛ рд╕рдордЭ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддреА рд╣реИрдВ рдФрд░ рдмрд┐рдирд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдВрддреНрд░ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдорджрдж рдХрд░реЗрдЧреАред
рдПрдХ рд╢реБрд░реБрдЖрддрдХрд░реНрддрд╛ рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдЬреЛ рдХреЛрдИ рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░" рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрдПрд╕ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рдЕрдиреНрдп рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИред рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирддрд╛ рд╣реИ рдЬреЛ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдЗрд╕реЗ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╡реЗрдВрдЯ-рдЖрдзрд╛рд░рд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдвреЗрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдШрдЯрдирд╛рдУрдВ рдХреА рдХрддрд╛рд░ рдФрд░ рдЙрдирдХреЗ рдЪрдврд╝рд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╡рд╣ рд╕реАрдЦрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдмреЗрд▓, рдХреЛрдгреАрдп, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, Vue, рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЕрд╕рдВрдЦреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдРрд╕реЗ "рдиреМрд╕рд┐рдЦрд┐рдП" рдореЗрдВ рдкрд╣рдЪрд╛рди рд▓рд┐рдпрд╛ рд╣реИ - рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВред рдЖрдк рди рддреЛ рдкрд╣рд▓реЗ рд╣реИрдВ рдФрд░ рди рд╣реА рдЕрдВрддрд┐рдоред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдмреНрдж рднреА рд╣реИ - рддрдерд╛рдХрдерд┐рдд "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдердХрд╛рди"ред рд▓реБрдХрд╛рд╕ рдПрдл рдХреЛрд╕реНрдЯрд╛
рдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
рдмрд╛рдд рдХреА : "
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдердХрд╛рди рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рддрдм рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд▓реЛрдЧ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИрдВ ред"
рд▓реЗрдХрд┐рди рджреБрдЦреА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рдЬреЛ рдХреЙрд▓рдмреИрдХ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЛ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдХрд╣рд╛рдиреА
рд╡рдЪрди рд╡рдЪрди рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо "рд╡рд╛рджреЗ" рдХрд╣рддреЗ рд╣реИрдВ, рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рджреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ рдЬреЛ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рджреЗрддреЗ рд╣реИрдВред рддреЛ рдЪрд▓рд┐рдП рдкрд╣рд▓реЗ рдЗрди рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░, рдЖрдк "рд╡рдЪрди" рд╢рдмреНрдж рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: "рджрд╛рдпрд┐рддреНрд╡, рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рд╕рд╣рдорддрд┐ рдпрд╛, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ"ред Ozhegov рдХреЗ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ, "рд╡рд╛рджрд╛" "рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИред"
рддреЛ рд╣рдо рд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ?
- рдПрдХ рд╡рд╛рджрд╛ рдЖрдкрдХреЛ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреМрди рдХрд░рддрд╛ рд╣реИ: рдЬрд┐рд╕рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рдпрд╛ рдЬрд┐рд╕рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдХреЛрдИ рдФрд░ред рдПрдХ рд╡рд╛рджрд╛ рдХрд┐рд╕реА рдЪреАрдЬ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд┐рд╕рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
- рдПрдХ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
- рдпрджрд┐ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдк рдХреБрдЫ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдХрд░рдиреЗ рдпрд╛ рдХрд┐рд╕реА рднреА рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдпрджрд┐ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдЬрд┐рд╕рдиреЗ рджрд┐рдпрд╛ рдерд╛ рд╡рд╣ рдЙрд╕реЗ рдкреВрд░рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛ рд╣реБрдЖ рдЙрд╕рдХрд╛ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдЖрдкрдХреЛ рдпрдХреАрди рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
- рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдЖрдк рдЙрд╕ рдЪреАрдЬ рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдк рддреБрд░рдВрдд рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрджрд┐ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд╛рджрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛), рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЬреЛ рд╣реБрдЖ рдЙрд╕рдХрд╛ рдХрд╛рд░рдг рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк рдПрдХ рдмреИрдХрдЕрдк рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред )ред
- рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рд╡рд╣ рдмрд╕ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рд╕рдордп рд╕реАрдорд╛ рдореЗрдВ рдмрдВрдзрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдиреЗ рдЬреЛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рд╡рд╣ 10 рджрд┐рдиреЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрд╕реЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ рдФрд░ рдЙрд╕рдиреЗ рд╡рд╛рджрд╛ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдирддреАрдЬрддрди, рднрд▓реЗ рд╣реА рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕реЗ 15 рджрд┐рдиреЛрдВ рдореЗрдВ рдкреВрд░рд╛ рдХрд░реЗ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реИрдХрд▓реНрдкрд┐рдХ рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╛рджреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЬрд╛рдПрдБред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд░рд╣реА рд╣реИ, рдореИрдВ рд╣рдореЗрд╢рд╛ рдкрдврд╝рддреЗ рд╣реИрдВ: рдореИрдВ рдПрдХ рдирд┐рдпрдо рд╣реИ
рдкреНрд░рд▓реЗрдЦрди , рдЬреЛ MDN рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрд╕рд╛рдзрди рджреВрд╕рд░реЛрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдореЗрдВ рдЕрдиреБрдХреВрд▓рддрд╛ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд╛рджреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд
рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ред
рд╡рд╛рджреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдореБрдЦреНрдп рдЪреАрдЬреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдкрд╣рд▓рд╛ рд╣реИ рд╡рд╛рджреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдгред рджреВрд╕рд░рд╛ рд╡рд╛рджреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рд╣рдо рдЬреЛ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛, рд╡рд╛рджреЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рддрдВрддреНрд░ рдХреА рдкреВрд░реА рд╕рдордЭ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЕрдиреБрднрд╡ рд╣реИ, рд╡рд╛рджреЗ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирдирд╛ рдЙрддрдирд╛ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рдирдирд╛ред
рд╡рд╛рджреЗ рдмрдирд╛рдПрдБ
рдпрд╣рд╛рдВ рд╡рд╛рджреЗ рдХреИрд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
new Promise( function(resolve, reject) { ... } );
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИ, рд╣рдордиреЗ рдЗрд╕реЗ
executor
рдХрд╣рд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ -
resolve
рдФрд░
reject
, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рднреА рд╣реИрдВред рд╡рд╛рджреЗ рдЖрдорддреМрд░ рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдпрд╛ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЬреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдмрдирд╛рддрд╛ рд╣реИ, I / O рдХреЗ рд╕рд╛рде рд╕реМрджреЗ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдРрд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╢реБрд░реБрдЖрдд
executor
рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдХреА
executor
рд╣реИред рдпрджрд┐ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдСрдкрд░реЗрд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╛рджреЗ рд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо
resolve
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рд╡рд╛рджреЗ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдЬрдм рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ
reject
рдлрд╝рдВрдХреНрд╢рди
reject
рдХреЙрд▓ рдХрд░рдХреЗ рдХреНрдпрд╛ рд╣реБрдЖ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАред
рдЕрдм рдЬрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╡рд╛рджреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдо рд╣рд░ рдЪреАрдЬ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд╛рджрд╛ рдХрд░реЗрдВрдЧреЗред
var keepsHisWord; keepsHisWord = true; promise1 = new Promise(function(resolve, reject) { if (keepsHisWord) { resolve("The man likes to keep his word"); } else { reject("The man doesnt want to keep his word"); } }); console.log(promise1);
рдЗрд╕ рдХреЛрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛:
рд╡рд╛рджрд╛ рдПрдХ рд░рд╛рдЬреНрдп (PromiseStatus) рдФрд░ рдПрдХ рдореВрд▓реНрдп (PromiseValue) рд╣реИрдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд╡рд╛рджрд╛ рддреБрд░рдВрдд рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдирдпрд╛ рд╡рд╛рджрд╛ рдХрд░реЗрдВ, рдЬреЛ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ
setTimeout
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
promise2 = new Promise(function(resolve, reject) { setTimeout(function() { resolve({ message: "The man likes to keep his word", code: "aManKeepsHisWord" }); }, 10 * 1000); }); console.log(promise2);
рдЗрд╕ рдХреЛрдб рдореЗрдВ, рдПрдХ рд╡рд╛рджрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╣рдореЗрдВ рдПрдХ рдЕрдирдзрд┐рдХреГрдд рд╡рд╛рджреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИред
рдЕрдирд╛рд░рдХреНрд╖рд┐рдд рд╡рдЪрди10 рд╕реЗрдХрдВрдб рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╛рджрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк,
PromiseStatus
рдФрд░
PromiseValue
рджреЛрдиреЛрдВ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдордиреЗ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрдм рд╡рд╛рджрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЕрдм рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдпрд╣
resolve
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╛рджрд╛ 10 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдФрд░ рдПрдХ рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рд╣рд▓рдЖрдЗрдП рдЕрдм рд╣рдо рдЙрд╕ рд╡рд╛рджреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
keepsHisWord = false; promise3 = new Promise(function(resolve, reject) { if (keepsHisWord) { resolve("The man likes to keep his word"); } else { reject("The man doesn't want to keep his word"); } }); console.log(promise3);
рдЪреВрдВрдХрд┐ рд╣рдо рд╡рд╛рджреЗ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (Google рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рд░рд┐рдЬреЗрдХреНрдЯреЗрдб рдкреНрд░реЙрдорд┐рд╕рдЕрдм, рддреАрдиреЛрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореВрд▓реНрдп
PromiseStatus
рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
pending
(рд▓рдВрдмрд┐рдд),
resolved
(рд╕рдлрд▓ рд╕рдВрдХрд▓реНрдк) рдФрд░
rejected
(рдЕрд╕реНрд╡реАрдХрд╛рд░)ред рдЬрдм рдХреЛрдИ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
PromiseStatus
pending
рд╣реЛрдЧрд╛, рдФрд░
PromiseValue
undefined
рд╣реЛрдЧрд╛ред рдЬрдм рддрдХ рд╡рд╛рджрд╛ рд╣рд▓ рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рдпреЗ рдореВрд▓реНрдп рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗред рдЬрдм рдХреЛрдИ рд╡рд╛рджрд╛ рдПрдХ
settled
рдпрд╛
rejected
рд░рд╛рдЬреНрдп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ
settled
рд╡рд╛рджрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╡рд╛рджрд╛ рдПрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рд░рд╛рдЬреНрдп рд╕реЗ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдпрд╛ рддреЛ рдПрдХ
resolved
рд░рд╛рдЬреНрдп рд╣реИ рдпрд╛ рдПрдХ
rejected
рд░рд╛рдЬреНрдп рд╣реИред
рдЕрдм рдЬрдм рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рд╛рджреЗ рдХреИрд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рд╡рд╛рдкрд╕ рд▓реМрдЯрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
Promise
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ
рдПрдордбреАрдПрди рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ
Promise
рд╡рд╕реНрддреБ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдлрд▓ рдпрд╛ рдЕрд╕рдлрд▓ рд╕рдорд╛рдкрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред
Promise
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрд░реАрдХреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдмрдирд╛рдП рдмрд┐рдирд╛ рд╕реНрдЯреЗрдЯрд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
Promise
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдерд┐рд░ рдФрд░ рдирд┐рдпрдорд┐рдд рджреЛрдиреЛрдВ рд╣реА рддрд░реАрдХреЗ
Promise
рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдХрд╛рдо рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
тЦН рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрд░реАрдХреЗ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
Promise
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдРрд╕реА рддреАрди рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЗрди рддрд░реАрдХреЛрдВ рдХреЛ
Promise
рд╡рд╕реНрддреБ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рд╕реНрд╡рдпрдВ рд╡рд╛рджреЗ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрди рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рджреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рдЬрдм рдХреЛрдИ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣
pending
рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдПрдХ рд╡рд╛рджреЗ рдХрд╛
resolved
рдпрд╛
rejected
рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:
Promise.prototype.catch(onRejected) Promise.prototype.then(onFulfilled, onRejected) Promise.prototype.finally(onFinally)
рдиреАрдЪреЗ рд╡рд╛рджрд╛ рдФрд░ рдИрд╡реЗрдВрдЯ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рдЖрд░реЗрдЦ рд╣реИ рдЬреЛ рдХрд┐
.catch
рдФрд░
.catch
рдХреЗ рдХреЙрд▓ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ
Promise
рд╡рд╕реНрддреБрдУрдВ рдХреЛ
Promise
рд╣реИрдВ, рдЙрдирдХреЗ рдХреЙрд▓ рдХреЛ рдЬрдВрдЬреАрд░ рдореЗрдВ рдмрд╛рдБрдзрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рднреА рдЪрд┐рддреНрд░ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╛рджреЗ рдХрд╛
.finally
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЬрдм рд╡рд╛рджреЗ рдХреЛ
settled
рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рд╡рд╛рджрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдпрд╛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдкреНрд░реЛрдорд┐рд╕ рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ ( рдпрд╣рд╛рдБ рд╕реЗ рд▓реА рдЧрдИ рдЫрд╡рд┐)рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯреА рдХрд╣рд╛рдиреА рд╣реИред рдЖрдк рдПрдХ рдЫрд╛рддреНрд░ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдорд╛рдБ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╕реЗрд▓ рдлреЛрди рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рд╡рд╣ рдХрд╣рддреА рд╣реИ: "рдЕрдЧрд░ рд╣рдорд╛рд░реА рдмрдЪрдд рдлреЛрди рдХреА рд▓рд╛рдЧрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦрд░реАрджреВрдВрдЧрд╛ред" рдЕрдм рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреБрдирдГ рд▓рд┐рдЦреЗрдВред
var momsPromise = new Promise(function(resolve, reject) { momsSavings = 20000; priceOfPhone = 60000; if (momsSavings > priceOfPhone) { resolve({ brand: "iphone", model: "6s" }); } else { reject("We donot have enough savings. Let us save some more money."); } }); momsPromise.then(function(value) { console.log("Hurray I got this phone as a gift ", JSON.stringify(value)); }); momsPromise.catch(function(reason) { console.log("Mom coudn't buy me the phone because ", reason); }); momsPromise.finally(function() { console.log( "Irrespecitve of whether my mom can buy me a phone or not, I still love her" ); });
рдЗрд╕ рдХреЛрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛:
рдорд╛рдБ рдиреЗ рд╡рд╛рджрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рдпрд╛рдпрджрд┐ рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓
momsSavings
рдХреЗ рдореВрд▓реНрдп рдХреЛ 200,000 рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдорд╛рдБ рдЕрдкрдиреЗ рдмреЗрдЯреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрд╣рд╛рд░ рдЦрд░реАрдж рд╕рдХреЗрдЧреАред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЧрд╛ред
рдорд╛рдБ рдиреЗ рдПрдХ рд╡рд╛рджрд╛ рд░рдЦрд╛рдЕрдм рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рд╢реНрди рдореЗрдВ рдХреЛрдб рдХреЛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЪрд▓реЛ
.catch
рдФрд░
.catch
рдХреЗ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐
onFulfilled
рдХреЛ
onFulfilled
рд╣реИрдВрдбрд▓рд░ рджреЛрдиреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡рд╛рджрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
onRejected
рд╣реИрдВрдбрд▓рд░ рдЬрд┐рд╕реЗ рд╡рд╛рджреЗ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм
.catch
рдореЗрдердб рдФрд░
.catch
рдореЗрдердб рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╕рд┐рд░реНрдл рдПрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
.then
рд╡рд┐рдзрд┐ред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
momsPromise.then( function(value) { console.log("Hurray I got this phone as a gift ", JSON.stringify(value)); }, function(reason) { console.log("Mom coudn't buy me the phone because ", reason); } );
рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ
.catch
рдФрд░
.catch
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Google Chrome рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдмрд╛рдж рдореЗрдВ рд╣рдо рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдПрдХ рд╡рд╛рджрд╛, рдкреНрд░рд╕реНрддрд╛рд╡ рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╡рд╛рджреЛрдВ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рд▓рдВрдм рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ
x
рдФрд░
y
рдмреАрдЪ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдорд╛рд░реЛрд╣ рд╣реИред
function getRandomNumber(start = 1, end = 10) { //, start end >=1 end > start return parseInt(Math.random() * end) % (end-start+1) + start; }
рдЕрдм рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рд╡рд╛рджреЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ
promiseTRRARNOSG
ред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо
promiseThatResolvesRandomlyAfterRandomNumnberOfSecondsGenerator
рдХреЗ рд▓рд┐рдП рдЦрдбрд╝рд╛ рд╣реИред
promiseThatResolvesRandomlyAfterRandomNumnberOfSecondsGenerator
,
promiseThatResolvesRandomlyAfterRandomNumnberOfSecondsGenerator
, рдпрд╣ рдЙрди рд╡рд╛рджреЛрдВ рдХрд╛ рдПрдХ рдЬрдирд░реЗрдЯрд░ рд╣реИ рдЬреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рдпрд╛ рд╕реЗрдХрдВрдб рдХреА рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рдж рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡рд╛рджрд╛ рдмрдирд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ 2 рд╕реЗ 10 рд╕реЗрдХрдВрдб рдХреЗ рдмреАрдЪ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдордп рдХреЗ рдмрд╛рдж рдЕрдиреБрдорддрд┐ рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рд╡рд╛рджреЗ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 1 рдФрд░ 10. рдХреЗ рдмреАрдЪ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ 5 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╡рд╛рджреЗ рдХреЛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПрдЧреА, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
function getRandomNumber(start = 1, end = 10) { //, start end >=1 end > start return (parseInt(Math.random() * end) % (end - start + 1)) + start; } var promiseTRRARNOSG = (promiseThatResolvesRandomlyAfterRandomNumnberOfSecondsGenerator = function() { return new Promise(function(resolve, reject) { let randomNumberOfSeconds = getRandomNumber(2, 10); setTimeout(function() { let randomiseResolving = getRandomNumber(1, 10); if (randomiseResolving > 5) { resolve({ randomNumberOfSeconds: randomNumberOfSeconds, randomiseResolving: randomiseResolving }); } else { reject({ randomNumberOfSeconds: randomNumberOfSeconds, randomiseResolving: randomiseResolving }); } }, randomNumberOfSeconds * 1000); }); }); var testProimse = promiseTRRARNOSG(); testProimse.then(function(value) { console.log("Value when promise is resolved : ", value); }); testProimse.catch(function(reason) { console.log("Reason when promise is rejected : ", reason); }); // , . , - . for (i=1; i<=10; i++) { let promise = promiseTRRARNOSG(); promise.then(function(value) { console.log("Value when promise is resolved : ", value); }); promise.catch(function(reason) { console.log("Reason when promise is rejected : ", reason); }); }
рдЗрд╕ рдХреЛрдб рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдПрдВ рдХрд┐ рдЕрдиреБрдордд рдФрд░ рдЕрд╕реНрд╡реАрдХреГрдд рд╡рд╛рджреЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдЕрдиреНрдп рддрдВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рд╡рд╛рджреЗ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╡рд╛рджрд╛ рд╡рд╕реНрддреБ рдХреЗ ofStatic рддрд░реАрдХреЗ
рдПрдХ
Promise
рд╡рд╕реНрддреБ рдХреЗ рдЪрд╛рд░ рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ -
Promise.reject(reason)
рдФрд░
Promise.resolve(value)
, рдЬреЛ рдЖрдкрдХреЛ рдХреНрд░рдорд╢рдГ рд╡рд╛рджреЗ, рдЕрд╕реНрд╡реАрдХреГрдд рдФрд░ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рджреЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐
Promise.reject
рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдЕрд╕реНрд╡реАрдХреГрдд рд╡рд╛рджреЗ рдХрд░рддрд╛ рд╣реИред
var promise3 = Promise.reject("Not interested"); promise3.then(function(value){ console.log("This will not run as it is a rejected promise. The resolved value is ", value); }); promise3.catch(function(reason){ console.log("This run as it is a rejected promise. The reason is ", reason); });
рдпрд╣рд╛рдБ
Promise.resolve
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдмрдирд╛рддрд╛ рд╣реИред
var promise4 = Promise.resolve(1); promise4.then(function(value){ console.log("This will run as it is a resovled promise. The resolved value is ", value); }); promise4.catch(function(reason){ console.log("This will not run as it is a resolved promise", reason); });
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рд╡рд╛рджрд╛ рдореЗрдВ рдХрдИ рд╣реИрдВрдбрд▓рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
var promise4 = Promise.resolve(1); promise4.then(function(value)); promise4.then(function(value)); promise4.catch(function(reason));
рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
рдкреНрд░реЙрдорд┐рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрдИрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ,
Promise.all
рдФрд░
Promise.race
, рд╡рд╛рджреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИрдВред рдпрджрд┐, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдЗрди рд╡рд╛рджреЛрдВ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдлрд╝рдВрдХреНрд╢рди
promiseTRRARNOSG
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдорд╛рдорд▓реЗ рдХреА рдЗрдЪреНрдЫрд╛ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреА рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рджреЛ рдирдП рдХрд╛рд░реНрдп рдмрдирд╛рдПрдВрдЧреЗред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ (
promiseTRSANSG
)
n
рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рд╣рд▓ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЛрдВ рдХреЛ рдмрдирд╛рдПрдЧрд╛, рджреВрд╕рд░рд╛ (
promiseTRJANSG
) - рдРрд╕реЗ рд╡рд╛рджреЗ рдЬреЛ
n
рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
var promiseTRSANSG = (promiseThatResolvesAfterNSecondsGenerator = function( n = 0 ) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve({ resolvedAfterNSeconds: n }); }, n * 1000); }); }); var promiseTRJANSG = (promiseThatRejectsAfterNSecondsGenerator = function( n = 0 ) { return new Promise(function(resolve, reject) { setTimeout(function() { reject({ rejectedAfterNSeconds: n }); }, n * 1000); }); });
рдЕрдм рд╣рдо
Promise.all
рдкрджреНрдзрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
тЦН рд╡рд┐рдзрд┐ Promise.all
MDN рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ, рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
Promise.all(iterable)
рд╡рд┐рдзрд┐ рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╕рднреА рд╡рд╛рджреЛрдВ рдХреЛ рдПрдХ
iterable
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЬрдм рдЗрд╕ рддрд░реНрдХ рдореЗрдВ рдХреЛрдИ рд╡рд╛рджреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рджрд╛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ рез
рдпрд╣рд╛рдВ рд╕рднреА рд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПрдЧреАред рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рд╕рдмрд╕реЗ рдЖрдо рд╣реИред
console.time("Promise.All"); var promisesArray = []; promisesArray.push(promiseTRSANSG(1)); promisesArray.push(promiseTRSANSG(4)); promisesArray.push(promiseTRSANSG(2)); var handleAllPromises = Promise.all(promisesArray); handleAllPromises.then(function(values) { console.timeEnd("Promise.All"); console.log("All the promises are resolved", values); }); handleAllPromises.catch(function(reason) { console.log("One of the promises failed with the following reason", reason); });
рдпрд╣рд╛рдБ рдпрд╣ рдХреЛрдб рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛:
рд╕рднреА рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реИрдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рд▓реЛрдХрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рддреАрд╕рд░рд╛ рд╡рд╛рджрд╛, рдЬрд┐рд╕рдХреЗ рд╕рдВрдХрд▓реНрдк рдореЗрдВ 2 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рджреЛрдВ рдХрд╛ рдХреНрд░рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред
рджреВрд╕рд░реЗ, рдХреЛрдб рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдорд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐
Promise.all
рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдпрджрд┐ рд╡рд╛рджреЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп 7 рд╕реЗрдХрдВрдб (1 + 4 + 2) рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЯрд╛рдЗрдорд░ рдиреЗ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдпрджрд┐ рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкреВрд░реЗ рдСрдкрд░реЗрд╢рди рдореЗрдВ 4 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдкреНрд░рдорд╛рдг рд╣реИ рдХрд┐ рд╕рднреА рд╡рд╛рджреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ 2
рдЕрдм рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрдм Promise.all рдХреЛ рджрд┐рдП рдЧрдП рд╕рд░рдгреА рдореЗрдВ рдХреЛрдИ рд╡рд╛рджреЗ рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред
console.time("Promise.All"); var promisesArray = []; promisesArray.push(1); promisesArray.push(4); promisesArray.push(2); var handleAllPromises = Promise.all(promisesArray); handleAllPromises.then(function(values) { console.timeEnd("Promise.All"); console.log("All the promises are resolved", values); }); handleAllPromises.catch(function(reason) { console.log("One of the promises failed with the following reason", reason); });
рдпрд╣рд╛рдБ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:
Promise.all рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдХреЛрдИ рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╕рд░рдгреА рджреЗрдВрдЪреВрдВрдХрд┐ рд╕рд░рдгреА рдореЗрдВ рдХреЛрдИ рд╡рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ,
Promise.all
рд▓рдЧрднрдЧ рддреБрд░рдВрдд
Promise.all
рд╣реИред
рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ 3
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд╛рджреЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
console.time("Promise.All"); var promisesArray = []; promisesArray.push(promiseTRSANSG(1)); promisesArray.push(promiseTRSANSG(5)); promisesArray.push(promiseTRSANSG(3)); promisesArray.push(promiseTRJANSG(2)); promisesArray.push(promiseTRSANSG(4)); var handleAllPromises = Promise.all(promisesArray); handleAllPromises.then(function(values) { console.timeEnd("Promise.All"); console.log("All the promises are resolved", values); }); handleAllPromises.catch(function(reason) { console.timeEnd("Promise.All"); console.log("One of the promises failed with the following reason ", reason); });
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
Promise.all
рдирд┐рд╖реНрдкрд╛рджрди рдЙрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдЦрд╛рд░рд┐рдЬ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╡рд╛рджрд╛ рджреЗрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рдЦрд╛рд░рд┐рдЬ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИтЦН рд╡рд╛рджрд╛ рдХрд░реЛред рд╡рд┐рдзрд┐
MDN рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐
Promise.race(iterable)
рд╡рд┐рдзрд┐ рдПрдХ рдЕрдиреБрдордд рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрдд рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕реНрд╡реАрдХреГрдд рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреНрд░рдорд╢рдГ рдкреНрд░реЗрд╖рд┐рдд рд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЕрдиреБрдорддрд┐ рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдЗрдП
Promise.race
рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ рез
рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд╛рджреЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
console.time("Promise.race"); var promisesArray = []; promisesArray.push(promiseTRSANSG(4)); promisesArray.push(promiseTRSANSG(3)); promisesArray.push(promiseTRSANSG(2)); promisesArray.push(promiseTRJANSG(3)); promisesArray.push(promiseTRSANSG(4)); var promisesRace = Promise.race(promisesArray); promisesRace.then(function(values) { console.timeEnd("Promise.race"); console.log("The fasted promise resolved", values); }); promisesRace.catch(function(reason) { console.timeEnd("Promise.race"); console.log("The fastest promise rejected with the following reason ", reason); });
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрдВрд╕реЛрд▓ рдХреЛ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИред
рдкреНрд░реЛрдорд┐рд╕, рдЬрд┐рд╕рдиреЗ рд╣рд░ рдХрд┐рд╕реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛рдпрд╣рд╛рдВ рд╕рднреА рд╡рд╛рджреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рддреАрд╕рд░рд╛ рд╡рд╛рджрд╛ 2 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рд╡рд╛рджрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ред
рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ 2
рдЕрдм рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрдм рд╡рд╛рджреЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
console.time("Promise.race"); var promisesArray = []; promisesArray.push(promiseTRSANSG(4)); promisesArray.push(promiseTRSANSG(6)); promisesArray.push(promiseTRSANSG(5)); promisesArray.push(promiseTRJANSG(3)); promisesArray.push(promiseTRSANSG(4)); var promisesRace = Promise.race(promisesArray); promisesRace.then(function(values) { console.timeEnd("Promise.race"); console.log("The fasted promise resolved", values); }); promisesRace.catch(function(reason) { console.timeEnd("Promise.race"); console.log("The fastest promise rejected with the following reason ", reason); });
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдВрд╕реЛрд▓ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓реЗрдЧрд╛:
рдмрд╛рдХреА рд╕рднреА рдХреЗ рд╕рд╛рдордиреЗ рд╡рд╛рджрд╛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛рдпрд╣рд╛рдВ рдХреЗ рд╡рд╛рджреЗ, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддрд░рд╣, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЪреМрдерд╛ рд╡рд╛рджрд╛ 3 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рд╡рд╛рджрд╛ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкреНрд░рдпреЛрдЧ
рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛, рдЬреЛ рд╣рдордиреЗ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдереЗ, рдЬреЛ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛, рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдХреЛрдб рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╣рдо рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджреНрдпрдкрд┐ рдпрд╣ рд╕рдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд╡реЗрджрди рдкрд╛рддрд╛ рд╣реИ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрди рддрдВрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп - рд╡рд╛рджреЛрдВ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╕рдордп рдХреА рджреЗрд░реА рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдмреЛрдЭ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдЦреЛрдЬрдХрд░, рдЖрдк рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рдФрд░ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рджреЗ рдХреЗ рд╕рдВрдпреЛрдЬрди, рд╡рд╛рджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╡рд╛рджреЛрдВ рдХреЗ
promiseTRRARNOSG
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭ рдкрд╛рдПрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
console.time
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рджреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдпрд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд┐рд╕реНрдЯ рдкреЗрдЬ рдХрд╛
рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
рдмреНрд▓реВрдмрд░реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдореИрдВ рдЖрдкрдХреЛ рдЙрди рдирд┐рдпрдореЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХрд╛ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред
- рдЬрдм рдЖрдк рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдпрд╛ рдЕрд╡рд░реЛрдзрдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдХрд┐рд╕реА рд╡рд╛рджреЗ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП,
.catch
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рд╡рд╛рджрд╛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, .catch
рдЙрдкрдпреЛрдЧ .catch
ред - рд╕рднреА рд╡рд╛рджреЛрдВ рдореЗрдВ
.catch
рдФрд░ .catch
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - - , ,
.finally
. - , , , .
- , .
Promise
, , , .Promise.all
, .
, , , .
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! , , ?
- ,- 10% :

:)