āĻĒā§āĻ°āĻ§āĻžāĻ¨
- āĻāĻĄāĻŧāĻ¤ā§ āĻŦāĻž āĻāĻŋāĻā§ āĻāĻāĻ¨āĻž āĻāĻāĻ˛ā§ āĻā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĄāĻžāĻ¯āĻŧāĻžāĻāĻ¨āĻ¸ā§āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ , āĻ¯āĻž āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻā§āĻ°ā§āĻ¯āĻžāĻļ, āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻšā§āĻ°āĻžāĻ¸, āĻŽā§āĻŽāĻ°āĻŋ āĻ˛āĻŋāĻ, āĻāĻžāĻ°ā§ CPU āĻ˛ā§āĻĄ, āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻŽāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§āĨ¤ - āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ API āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
Async āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¸ā§āĻā§āĻ°ā§āĻ AsyncLocalStorage āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§, āĻ¯āĻž āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ˛ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ AsyncLocalStorage āĻāĻĒāĻ¨āĻžāĻā§ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§, āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĨā§āĻ°ā§āĻĄ-āĻ˛ā§āĻāĻžāĻ˛ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻāĻĨāĻž āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻ¯āĻŧāĨ¤ - āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§
āĻŽāĻĄāĻŋāĻāĻ˛ ECMAScript 6 āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻŦāĻ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻŦāĻ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, ESM āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¨āĻŋāĻā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ°āĻ¯āĻŧā§ āĻā§āĻā§āĨ¤ - V8 āĻāĻā§āĻāĻŋāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
8.1 (1 ,2 ,3 ), āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¨ā§āĻļāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° "???" (āĻŦāĻžāĻŽ āĻ āĻĒāĻžāĻ°ā§āĻ¨ā§āĻĄāĻāĻŋ NULL āĻŦāĻž āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ˛ā§ āĻĄāĻžāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§), "?." āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻāĻŋ āĻŦāĻž āĻāĻ˛ā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻā§āĻāĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§āĻ āĻāĻžāĻĄāĻŧāĻžāĻ "db?.user?.name?.length") āĻāĻ-āĻŦāĻžāĻ° āĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ Intl.DisplayName āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ - āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻ¸ API-āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¯āĻžāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻ¸ API-āĻāĻ° āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻāĻŦāĻ Node.js-āĻāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻ°āĻŖā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻĻā§āĻ° āĻāĻ°āĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, 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 āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻž āĻ¨āĻ¨-āĻŦā§āĻ˛āĻāĻŋāĻ āĻāĻā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ āĻāĻŦāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĨ¤ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸āĻŋāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻĒā§āĻ˛, āĻā§āĻāĻŋāĻ, /dev/poll āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨āĨ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻ¸āĻāĻ¯ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ° āĻŽā§āĻ˛ āĻ
āĻāĻļā§, Node.js āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻŽāĻ¤ā§
āĻāĻ¤ā§āĻ¸: opennet.ru