"рдкреНрд░рд╛рдкреНрдд" рдХрдорд╛рдВрдб рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп 'рд╕рддреНрдп' рдирд╣реАрдВ рд╣реИ?
рдирдорд╕реНрддреЗ @yuany - рдпрд╣ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ Node.js рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдкрд░рд┐рдгрд╛рдо рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЕрд░реНрдерд╛рдд:
client.get("foo", function (error, value) { /* ... */ })
рдпрд╣ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ Node.js рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, IO рд╕рдВрдЪрд╛рд▓рди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп _not_ рдорд╛рди рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж, @brycebaril рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:
var рдкрд░рд┐рдгрд╛рдо = client.get ("foo", рдлрд╝рдВрдХреНрд╢рди (рддреНрд░реБрдЯрд┐, рдорд╛рди) {рд╡рд╛рдкрд╕реА рдорд╛рди});
рдЪреЗрддрд╛рд╡рдиреА (рдкрд░рд┐рдгрд╛рдо);//рдкрд░рд┐рдгрд╛рдо 'рдЧрд▓рдд' рдпрд╛ 'рд╕рддреНрдп' рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд░реЗрдбрд┐рд╕ рд╕реЗ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рд╣реИред
рд╣рд╛рдп @yuany - рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрдм рдЖрдИрдУ рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рдиреЛрдб рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреЙрд▓рдмреИрдХ рдкрд░рд┐рдгрд╛рдо рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдХреЛрдб рдЬреЛ IO рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИрдВ, рдЪрд▓реЗрдВрдЧреЗ рдЬрдмрдХрд┐ IO рдСрдкрд░реЗрд╢рди рдХрддрд╛рд░рдмрджреНрдз, рдирд┐рд╖реНрдкрд╛рджрд┐рдд, рдФрд░ рдЙрддреНрддрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИ: https://github.com/maxogden/art-of-node#callbacks
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
client.get("foo", function (error, value) {
// value is only defined in the context of this callback
console.log(value)
})
// this parent code has already executed, before it asked Redis for the value
рдзрдиреНрдпрд╡рд╛рдж, @brycebaril рдЕрдм рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд╣реВрдВ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ @yuany - рдпрд╣ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ Node.js рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдкрд░рд┐рдгрд╛рдо рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЕрд░реНрдерд╛рдд:
рдпрд╣ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ Node.js рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, IO рд╕рдВрдЪрд╛рд▓рди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп _not_ рдорд╛рди рд╣реИред