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();
рдЕрдм рд╣рдо рдЕрдкрдиреА рдЪреЗрди рдмрдирд╛рдиреЗ рдХреА
рд╕рд╛рд░реА рд╢рдХреНрддрд┐ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рддрд░реАрдХреЗ рд╣реИрдВ:
.then(Function | Array.<Function>)
.defer(Function | Array.<Function>)
.when(Chain | Array.<Chain>)
.defer
рдкрджреНрдзрддрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ,
.defer
рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ,
.defer
Chain
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ
.when
рд╣реИред рд╕рднреА 3 рд╡рд┐рдзрд┐рдпрд╛рдВ
Chain
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ
Chain
, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ (
jQuery рдХреА рдЪреЗрдирд┐рдВрдЧ рдХреА рддрд░рд╣) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдпрд╛ рддреЛ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдпрд╛ рдРрд╕реЗ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗ рд╕рдХрддреА рд╣реИрдВред
.defer
рдФрд░
.defer
рдкрд┐рдЫрд▓реЗ рд▓рд┐рдВрдХ
.defer
рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдЧрд▓реЗ рдкрд╛рд╕ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм
.end
рд╡рд┐рдзрд┐ рдХреЛ
.end
, рдЬреЛ рдХрд┐ рдЕрдВрддрд┐рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдзрд┐ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВ:
- .end ([рд╕рдорд╛рд░реЛрд╣])
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
рд╕рдордЭрдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
var calculate = Chain(); calculate. then(function() {
рдЙрд╕реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд░рд┐рдХреЙрд░реНрдб:
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);
рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдПрдХ рдЬреИрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
var calculate = Chain(); calculate. defer(function(n, done) {
рдПрдХ рд╣реА рдмрд╛рдд, рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ:
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);
рдЕрдВрдд рдореЗрдВ,
.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; });
рдХрд╛рдо рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдкрд╛рд╕ рдХреА рдЧрдИред рдЪреЗрди рд╡рд┐рдзрд┐
.when
рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдХреЗрддрд┐рдд рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдХрдиреЗрдХреНрд╢рди (рдЬреЛрдбрд╝) рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдЪреЗрди рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж
.end
рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╕рднреА рдХрд╛рд░реНрдп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рдд, рдЪреЗрди рджреЛ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ
console.log
рдбрд╛рд▓реЗрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
.end
рд╡рд┐рдзрд┐
.end
, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
.end
рд╡рд┐рдзрд┐ рдПрдХ рджреВрд╕рд░рд╛ рддрд░реНрдХ рд▓реЗ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк
рдЪреЗрди.рдЬреЗрдПрд╕ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдореИрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд░реБрдХрд╛рд╡рдЯ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрднрд╡ рд╣реИред
рдЕрдВрдд
рдХреНрдпрд╛ рдпрд╣ рдЕрдВрдд рд╣реИ? рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рд╕реБрдЭрд╛рд╡реЛрдВ, рдЗрдЪреНрдЫрд╛рдУрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЕрджреНрдпрддрдиред рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛
рдПрдХ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рддреАрд╕рд░реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рдж рдХрд┐ рдХреИрд╕реЗ
Chain.js рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдЪреБрдк рд░рд╣рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ
KeepYourMind рд╕реЗ рд╕рдВрдкрд░реНрдХ
рдХрд┐рдпрд╛ рдФрд░ рдЙрдирд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдЬрдм рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорджрдж рдХрд░реЗрдВред
KeepYourMind рдорджрдж рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реБрдЖ рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдЕрддреБрд▓реНрдп рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЙрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдбреЛрдореЗрди рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдЗрд╕ рдкрддреЗ рдкрд░ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВ:
- рдбреЛрдореЗрди рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ -> рд▓рд┐рдВрдХ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ -> рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ -> рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ
Chain.js рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рдзрд╛рди
KeepYourMind рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред Github Gist рдкрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ:
рдЕрдм рдЖрдк рд╕реНрд╡рдпрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
KeepYourMind рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рджреМрд░рд╛рди,
рдЪреЗрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рддрд╛рдХрд┐
рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред
рдЕрдкрдбреЗрдЯ рдирдВрдмрд░ 2ред рд╡рд┐рд╕реНрддрд╛рд░
рдПрдХ рдЫреЛрдЯреА рдЪрд░реНрдЪрд╛ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ,
KeepYourMind рдФрд░
can3p рдиреЗ рдореБрдЭреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рд╕рднреА рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рд╣реИ
рдЬрдм рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐
Chain.js рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛
рдкреНрд░реЙрдорд┐рд╕ / рдП рдореЗрдВ рддрдп рдирд╣реАрдВ рд╣реИ
редрдпрджрд┐ рдЖрдкрдХреЛ рд▓реЗрдЦ рдФрд░ рд▓рд┐рдВрдХ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╕рдВрдж рдЖрдП рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐
рдХрдм ,
рдЬреЗрдПрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд
рд╣реЛрдВ , рдЬреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░реВрдВрдЧрд╛ред рдЖрдк рд╕рднреА рдХреЛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред