[UPD] Chain.js: рд╣рдо рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ

Chain.js рдПрдХ рдЫреЛрдЯреА рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдЪреЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдЪреЗрди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдо рдЬреЗрдПрд╕ рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ред "рд╡рд╛рджреЛрдВ" рдХреА рдмрд╣реБрдд рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╣рддреА рд╣реИ рдХрд┐ рд╡рд╛рджрд╛ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдореВрд▓реНрдп рд╣реИред рдпрджрд┐ рдЖрдк рдХреБрдЫ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░, рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрджреНрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ, рдЖрдк рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдореБрдЦреНрдп рдордХрд╕рдж рдмрди рдЧрдпрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╡рд╛рджрд╛- рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХреБрдЫ рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЖрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рд╡реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗред

рд╢реБрд░реБрдЖрдд


рдХреЙрдорди рдЬреЗрдПрд╕ рд╡рд╛рджреЛрдВ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдмрд╣реБрдд рд╕рдордп рд╕реЗ рдореБрдЭреЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред Angular.js , рдЬрд┐рд╕рдХрд╛ рдЕрдкрдирд╛ рд╡рд╛рджрд╛ / рд╕реНрдердЧрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдиреЗ рдореБрдЭреЗ рдЖрдкрд╕реА рдкреИрда рдХреА рдУрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ред рд╡рд╛рджреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрди рдмрд╣реБрдд рдЬрдВрдЬреАрд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╡рд╛рджреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рдереЗ ред рдЗрд╕рд▓рд┐рдП, рдЖрдЧреЗ рдЬрд╛рдиреЗ рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП


рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рджреМрд░рд╛рди, hain.js рдХреЛ 5 рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдорд┐рд▓реА: 1 рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ 4 рд╡рд┐рдзрд┐рдпрд╛рдБред рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЖрдХрд╛рд░ 2.03KB рд╣реИ, рдкреВрд░реНрдг (рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ ^ _ ^) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЖрдХрд╛рд░ 3.15KB рд╣реИред рдЖрдк рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Chain.js рдХреЗ рд▓рд┐рдП рдмрдиреЗ рдкреЗрдЬ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рд╕реАрдзрд╛ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕реНрдерд╛рдкрдирд╛ рддреБрдЪреНрдЫ рд╣реИ, рдЕрдиреНрдп рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред

<script src="js/chain.dev.js" type="text/javascript"></script> 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ ( window , рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░) рдореЗрдВ Chain рдирд╛рдо рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз рд╣реИред Chain рдирдИ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдбрд┐рдЬрд╛рдЗрдирд░ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджреЛ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ (рдЖрдк рд╕реНрд╡рдпрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ):

 var testChain = Chain(); //  var anotherChain = new Chain; 

рдЕрдм рд╣рдо рдЕрдкрдиреА рдЪреЗрди рдмрдирд╛рдиреЗ рдХреА рд╕рд╛рд░реА рд╢рдХреНрддрд┐ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рддрд░реАрдХреЗ рд╣реИрдВ:

.defer рдкрджреНрдзрддрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, .defer рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, .defer Chain рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ .when рд╣реИред рд╕рднреА 3 рд╡рд┐рдзрд┐рдпрд╛рдВ Chain рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ Chain , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ ( jQuery рдХреА рдЪреЗрдирд┐рдВрдЧ рдХреА рддрд░рд╣) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдпрд╛ рддреЛ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдпрд╛ рдРрд╕реЗ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗ рд╕рдХрддреА рд╣реИрдВред .defer рдФрд░ .defer рдкрд┐рдЫрд▓реЗ рд▓рд┐рдВрдХ .defer рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдЧрд▓реЗ рдкрд╛рд╕ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм .end рд╡рд┐рдзрд┐ рдХреЛ .end , рдЬреЛ рдХрд┐ рдЕрдВрддрд┐рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдзрд┐ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВ:

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
рд╕рдордЭрдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:

 var calculate = Chain(); calculate. then(function() { //      undefined return 0; }). then(function(result) { //   , result  0 return result + 5; }). then(function(result) { // result  5 return result + 10; }). end(function(result) { console.log(result); }); //  15 

рдЙрд╕реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд░рд┐рдХреЙрд░реНрдб:

 var calculate = new Chain; function zero() { return 0; } function plus5(num) { return num + 5; } function plus10(num) { return num + 10; } function log(result) { console.log(result); } calculate. then([zero, plus5, plus10]). end(log); //  15 

рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдПрдХ рдЬреИрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:

 var calculate = Chain(); calculate. defer(function(n, done) { //     undefined, //  - ,        done(0); }). defer(function(result, done) { // result  0 //    setTimeout(function() { done(result + 5); }, 1000); }). defer(function(result, done) { // result  5 done(result + 10); }). end(function(result) { console.log(result); }); //  15 

рдПрдХ рд╣реА рдмрд╛рдд, рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ:

 var calculate = new Chain; function zero(n, done) { done(0); } function plus5(num, done) { setTimeout(function() { done(num + 5); }, 1000); } function plus10(num, done) { done(num + 10); } function log(result) { console.log(result); } calculate. defer([zero, plus5, plus10]). end(log); //  15 

рдЕрдВрдд рдореЗрдВ, .when рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рдмрд╛рдХреА рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред .when рдкрджреНрдзрддрд┐ .when рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкрд┐рдЫрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░рдгреА рдЕрдЧрд▓реЗ рд▓рд┐рдВрдХ рдкрд░ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 var five = Chain(), ten = Chain(); five.defer(function(n, done) { setTimeout(function() { done(5); }, 1000); }); ten. when(five). then(function(results) { return results[0] + 5; }); // results   [5] Chain(). when([ten, five, ten]). end(function(results) { console.log(results); }); //  [10, 5, 10] 


рдХрд╛рдо рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


рдкрд╛рд╕ рдХреА рдЧрдИред рдЪреЗрди рд╡рд┐рдзрд┐ .when рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдХреЗрддрд┐рдд рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдХрдиреЗрдХреНрд╢рди (рдЬреЛрдбрд╝) рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

рдЪреЗрди рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж .end рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╕рднреА рдХрд╛рд░реНрдп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рдд, рдЪреЗрди рджреЛ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ console.log рдбрд╛рд▓реЗрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ .end рд╡рд┐рдзрд┐ .end , рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, .end рд╡рд┐рдзрд┐ рдПрдХ рджреВрд╕рд░рд╛ рддрд░реНрдХ рд▓реЗ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪреЗрди.рдЬреЗрдПрд╕ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдореИрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд░реБрдХрд╛рд╡рдЯ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрднрд╡ рд╣реИред

рдЕрдВрдд


рдХреНрдпрд╛ рдпрд╣ рдЕрдВрдд рд╣реИ? рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рд╕реБрдЭрд╛рд╡реЛрдВ, рдЗрдЪреНрдЫрд╛рдУрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЕрджреНрдпрддрдиред рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛


рдПрдХ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рддреАрд╕рд░реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рдж рдХрд┐ рдХреИрд╕реЗ Chain.js рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдЪреБрдк рд░рд╣рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ KeepYourMind рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдФрд░ рдЙрдирд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдЬрдм рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорджрдж рдХрд░реЗрдВред KeepYourMind рдорджрдж рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реБрдЖ рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдЕрддреБрд▓реНрдп рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЙрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдбреЛрдореЗрди рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдЗрд╕ рдкрддреЗ рдкрд░ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВ:

рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ Chain.js рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рдзрд╛рди KeepYourMind рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред Github Gist рдкрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ:

рдЕрдм рдЖрдк рд╕реНрд╡рдпрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, KeepYourMind рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рджреМрд░рд╛рди, рдЪреЗрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рддрд╛рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред

рдЕрдкрдбреЗрдЯ рдирдВрдмрд░ 2ред рд╡рд┐рд╕реНрддрд╛рд░


рдПрдХ рдЫреЛрдЯреА рдЪрд░реНрдЪрд╛ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ, KeepYourMind рдФрд░ can3p рдиреЗ рдореБрдЭреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рд╕рднреА рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рд╣реИ рдЬрдм рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ Chain.js рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░реЙрдорд┐рд╕ / рдП рдореЗрдВ рддрдп рдирд╣реАрдВ рд╣реИ ред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓реЗрдЦ рдФрд░ рд▓рд┐рдВрдХ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╕рдВрдж рдЖрдП рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрдм , рдЬреЗрдПрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВ , рдЬреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░реВрдВрдЧрд╛ред рдЖрдк рд╕рднреА рдХреЛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In195588/


All Articles