рдореБрдЦреНрдп
- рдЙрдбрд╛рдирдорд╛ рд╡рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рдШрдЯрдирд╛рдорд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ
рдирд┐рджрд╛рди рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ , рдЬрд╕рд▓реЗ рдШрдЯрдирд╛рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдирд┐рджрд╛рди рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫ рдЬрд╕реНрддреИ рдХреНрд░реНрдпрд╛рд╕рд╣рд░реВ, рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЧрд┐рд░рд╛рд╡рдЯ, рдореЗрдореЛрд░реА рд▓реАрдХ, рднрд╛рд░реА CPU рд▓реЛрдб, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ, рдЖрджрд┐ред - рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ API рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ
Async рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг AsyncLocalStorage рд╡рд░реНрдЧрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде, рдЬреБрди рдХрд▓рдмреНрдпрд╛рдХ рдХрд▓ рд░ рдкреНрд░рддрд┐рдЬреНрдЮрд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрд╕рдБрдЧ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЕрд╡рд╕реНрдерд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред AsyncLocalStorage рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрдм рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдкреНрд░рд╢реЛрдзрди рднрдЗрд░рд╣реЗрдХреЛ рдЫ, рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдгрдХреЛ рд╕рдореНрдЭрдирд╛ рджрд┐рд▓рд╛рдЙрдБрдЫред - рд▓реЛрдб рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рдмрд╛рд░реЗ рдЪреЗрддрд╛рд╡рдиреА рд╕рдиреНрджреЗрд╢ рд╣рдЯрд╛рдЗрдпреЛ
рдореЛрдбреНрдпреБрд▓рд╣рд░реВ ECMAScript реирежрезред рдЬрдбрд╛рди рд░ рдЖрдпрд╛рдд рд░ рдирд┐рд░реНрдпрд╛рдд рдмрдпрд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирд┐рд░реНрдпрд╛рддред рдПрдХреИ рд╕рдордпрдорд╛, ESM рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдлреИ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░рд╣рдиреНрдЫред - V8 рдЗрдиреНрдЬрд┐рди рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдпреЛ
8.1 (1 ,2 ,3 ), рдЬрд╕рдорд╛ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рд░ рдирдпрд╛рдБ рддрд╛рд░реНрдХрд┐рдХ рдХрдиреНрдЯреЗрдиреЗрд╕рди рдЕрдкрд░реЗрдЯрд░ "???" рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред (рдмрд╛рдпрд╛рдБ рдЕрдкрд░реЗрдиреНрдб NULL рд╡рд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рднрдПрдорд╛ рджрд╛рдпрд╛рдБ рдЕрдкрд░реЗрдиреНрдб рдлрд░реНрдХрд╛рдЙрдБрдЫ, рд░ рдпрд╕рдХреЛ рд╡рд┐рдкрд░реАрдд), "?ред" рдЕрдкрд░реЗрдЯрд░ред рд╕рдореНрдкреВрд░реНрдг рдЧреБрдг рд╡рд╛ рдХрд▓рд╣рд░реВрдХреЛ рдПрдХ рдкрдЯрдХ рдЬрд╛рдБрдЪрдХреЛ рд▓рд╛рдЧрд┐ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "db?.user?.name?.length" рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЬрд╛рдБрдЪрд╣рд░реВ рдмрд┐рдирд╛), рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдирд╛рдорд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ Intl.DisplayName рд╡рд┐рдзрд┐, рдЖрджрд┐ред - рд╕реНрдЯреНрд░рд┐рдореНрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдПрдХрд░реВрдкрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд░ Node.js рдХреЛ рдЖрдзрд╛рд░рднреВрдд рднрд╛рдЧрд╣рд░реБ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд╛ рднрд┐рдиреНрдирддрд╛ рд╣рдЯрд╛рдЙрди рдХреЛ рд▓рд╛рдЧреА, рд╕реНрдЯреНрд░рд┐рдореНрд╕ API рдХреЛ рдПрдХ рд╕рдВрд╢реЛрдзрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, http.OutgoingMessage рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ stream.Writable рдХреЛ рдирдЬрд┐рдХ рдЫ, рд░ net.Socket stream.Duplex рдЬрд╕реНрддреИ рдЫред AutoDestroy рд╡рд┐рдХрд▓реНрдк рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ "true" рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рдХреЛ рдЕрд░реНрде рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ "_destroy" рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреБ рд╣реЛред
- рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ API рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ
рд╡рд╛рд╕реА (WebAssembly рдкреНрд░рдгрд╛рд▓реА рдЗрдиреНрдЯрд░рдлреЗрд╕ ), рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╕рдБрдЧ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗ (рдлрд╛рдЗрд▓, рд╕рдХреЗрдЯ, рдЖрджрд┐рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ POSIX API)ред - рдХреЛ рд▓рд╛рдЧрд┐ рдмрдвреНрджреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реБ
рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдХрдореНрдкрд╛рдЗрд▓рд░ рд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдорд╣рд░реВ: macOS 10.13 (рдЙрдЪреНрдЪ рд╕рд┐рдПрд░рд╛), GCC 6,рд╡рд┐рдиреНрдбреЛрдЬ рдирдпрд╛рдБ 7/2008R2 .
рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ Node.js рдкреНрд▓реЗрдЯрдлрд░реНрдо рджреБрдмреИ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╕рд░реНрднрд░-рд╕рд╛рдЗрдб рд╕рдорд░реНрдерди рд░ рд╕рд╛рдзрд╛рд░рдг рдЧреНрд░рд╛рд╣рдХ рд░ рд╕рд░реНрднрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред Node.js рдХреЛ рд▓рд╛рдЧреА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди, рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛
рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди, Node.js рд▓реЗ рдЧреИрд░-рдмреНрд▓рдХрд┐рдЩ рдШрдЯрдирд╛ рдкреНрд░рд╢реЛрдзрди рд░ рдХрд▓рдмреНрдпрд╛рдХ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдЖрдзрд╛рд░рдорд╛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЛрдбреЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдЩ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ epoll, kqueue, /dev/poll, рд░ рдЪрдпрди рд╕рдорд╛рд╡реЗрд╢ рдЫред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕ рдЬрдбрд╛рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ
рдпрд╕рдХреЛ рдореВрд▓ рдорд╛, Node.js рдлреНрд░реЗрдорд╡рд░реНрдХ рдЬрд╕реНрддреИ рдЫ
рд╕реНрд░реЛрдд: opennet.ru