рдЕрд╡рд▓реЛрдХрдиреАрдп рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдкрдиреЗ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЛ LINQ рдкрд╕рдВрдж рд╣реИ? рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ? рднрд┐рдХреНрд╖реБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╕рдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реИ?
рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП Rx рдХреНрдпрд╛ рд╣реИ?
Rx рдХрд╛ рдЕрд░реНрде рд╣реИ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕ред рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛
рдкреГрд╖реНрда рдкрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╣рддреА рд╣реИ:
рдЖрд░рдПрдХреНрд╕ рдСрдмреНрдЬрд╝рд░реНрд╡рд░ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдШрдЯрдирд╛-рдЙрдиреНрдореБрдЦ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред
рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдФрд░ рдХрд░реНрд╕рд░ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХрд▓реЗрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ RxJS рдЕрдкрдиреА рдЬрдбрд╝реЗрдВ .NET рджреБрдирд┐рдпрд╛ рд╕реЗ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ
LINQ рдлреАрдЪрд░реНрд╕ (рд╕реЗрд▓реЗрдХреНрдЯ, рдЬрд╣рд╛рдВ, рдЯреЗрдХ, рд╕реНрдХрд┐рдк рдЖрджрд┐) рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдореМрдЬреВрджрд╛ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
рд▓рд┐рдВрдХ рдкрд░ RxJS рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ ред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ jQuery, MooTools, рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк, Dojo, ExtJS рдХреЗ рд╕рд╛рде-рд╕рд╛рде Google рдореИрдкреНрд╕ рдЬреИрд╕реА рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ 7.4 kb rx.js рдлрд╝рд╛рдЗрд▓ (30 Kbytes рдЕрд╕рдВрдкреАрдбрд╝рд┐рдд) рд╣реЛрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╕реНрдерд╛рдкрд┐рдд рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ jQuery рд╣реИредрддреЛ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг HTML рдкреЗрдЬ рдмрдирд╛рдПрдВ рдФрд░ RxJS рдореЗрдВ рдкреНрд▓рдЧ рдХрд░реЗрдВред
<head> <title>Samplestitle> <script type="text/javascript" src="Scripts\rx.js"></script> <head>
рдЙрд╕рдХреЗ рдмрд╛рдж, IntelliSense Rx рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред

рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ Rx рдореЗрдВ рдЕрдкрдирд╛рдИ рдЧрдИ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдФрд░ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
- рдЕрд╡рд▓реЛрдХрдиреАрдп - рдПрдХ рд╕рдВрдЧреНрд░рд╣, рдПрдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред
- рдСрдмреНрдЬрд░реНрд╡рд░ ("рдСрдмреНрдЬрд░реНрд╡рд░") - рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЬреЛ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред
- рдпрд╣ рдЕрд╡рд▓реЛрдХрдиреАрдп рд╣реИ рдХрд┐ рдкреНрд░реЗрдХреНрд╖рдХ рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВред
- рдЖрд░рдПрдХреНрд╕ рдХрд╛ рдЖрдзрд╛рд░ рднрд┐рдХреНрд╖реБрдУрдВ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, рдЬреЛ рд╢рд╛рд╕реНрддреНрд░реАрдп рд░реВрдк рдореЗрдВ рдЕрд╕рддреНрдп рд╣реИред рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ "рдЖрд▓рд╕реА" (рд╡рд┐рд▓рдВрдмрд┐рдд) рдЧрдгрдирд╛рдУрдВ рдореЗрдВ, рд╕рд╛рде рд╣реА рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХреА рдЧрдИ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред
- рдХреЛрд▓реНрдб рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ - рдПрдХ рд╕реНрд░реЛрдд рдЬреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░реНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХреЛ рдирдпрд╛ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред
- рд╣реЙрдЯ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдПрдХ рдРрд╕рд╛ рд╕реНрд░реЛрдд рд╣реИ рдЬреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рди рд╣реЛрдиреЗ рдкрд░ рднреА рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рди рдХреЗрд╡рд▓ рдкреАрдврд╝реА рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдбреЗрдЯрд╛ рдорд┐рд▓рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдХреНрд╖рдг рд╕реЗред рдПрдХ рдЙрджрд╛рд╣рд░рдг DOM рддрддреНрд╡реЛрдВ рдХреА рдШрдЯрдирд╛ рд╣реИред
- RxJS рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо CamelCase рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░реЗрдХреНрд╖рдХреЛрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд╡рд▓реЛрдХрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
var source = null; var subscription = source.Subscribe( function (next) { console.log("OnNext: " + next); }, function (exn) { console.log("OnError: " + exn); }, function () { console.log("OnCompleted"); });
рдФрд░
var source = Rx.Observable.Empty(); var observer = Rx.Observer.Create( function (data) { $(" ").text(data).appendTo("#content"); }); var handle = source.Subscribe(observer);
рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╡рд┐рдзрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдирд┐рд░реНрдорд┐рдд / рдкреНрд░реЗрд╖рд┐рдд рдкреНрд░реЗрдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн (рд╕рдВрднрд╛рд▓) рджреЗрддрд╛ рд╣реИ
- рдкрд╣рд▓реЗ рдЕрдзрд┐рднрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рддрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ: рдбреЗрдЯрд╛ рдРрд░реЗ (OnNext) рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░; рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ (OnError); рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИрдВрдбрд▓рд░ (рдЪрд╛рд▓реВ)
- рджреВрд╕рд░реЗ рдЕрдзрд┐рднрд╛рд░ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдП рдЧрдП рдСрдмреНрдЬрд░реНрд╡рд░ рдХреЛ OnNext, OnError, OnCompected рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, .NET рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдбрд┐рд╕реНрдкреЛрдЬрд╝ рдкреИрдЯрд░реНрди RxJS рдореЗрдВ рдЖрдпрд╛ред
рддреЛ рдСрдмреНрдЬрд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ (рд╣реИрдВрдбрд▓) рдореЗрдВ рдбрд┐рд╕реНрдкреЛрдЬрд╝ рд╡рд┐рдзрд┐ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

observables
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рд╣рдореЗрд╢рд╛ "рд╣реЙрдЯ" рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ: рдЪрд╛рд╣реЗ рд╡рд╣ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реЛ, рдпрд╛ рдбреЛрдо рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ "рдХреЛрд▓реНрдб" рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрддрдиреЗ рдЖрдо рдирд╣реАрдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдкреВрд░реНрд╡-рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред
рдПрдХ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рдФрд░ рдЙрдирдХреЗ рд╡рд┐рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдПрдкреАрдЖрдИ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред
рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо | рд╡рд┐рд╡рд░рдг |
рдЦрд╛рд▓реА () | OnCompleted рдирд╛рдордХ рдПрдХ рдЦрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИ |
рдлреЗрдВрдХреЛ (error_msg) | рдПрдХ OnError рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИ |
рд╡рд╛рдкрд╕реА (рдореВрд▓реНрдп) | рдПрдХ рдЖрдЗрдЯрдо рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИ |
рд░реЗрдВрдЬ (рд╢реБрд░реВ, рдЧрд┐рдирддреА) | 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ |
рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ (рдЖрд░рдВрднрд┐рдХ_рд╕реНрдЯреЗрдЯ, рдХрдВрдбреАрд╢рди, рдЪрдпрдирдХрд░реНрддрд╛, рдкреБрдирд░рд╛рд╡реГрддрд┐) | рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИ |
GenerateWithTime (рд╕рдордп) | рдЬрдирд░реЗрдЯ рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рддрддреНрд╡реЛрдВ рдХреА рдкреАрдврд╝реА рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИ |
рдХрднреА рдирд╣реАрдВ () | рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмреБрд▓рд╛рдП рдмрд┐рдирд╛ рдПрдХ рдЦрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИ |
.Observable (event_name) | JQuery рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди |
FromArray () | JS рд╕рд░рдгреА рд╕реЗ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ |
рдмрдирд╛рдПрдВ (subscribe_detail) | рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╕рджрд╕реНрдпрддрд╛ рд╡рд┐рд╡рд░рдг рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рддрд╛ рд╣реИ |
FromDognvent (dom_element, event_name) | DOM рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди |
FromIEEvent (dom_element, event_name) | Internet Explorer рдХреЗ DOM рддрддреНрд╡реЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди |
FromHtmlEvent (dom_element, event_name) | FromDOMEvent () рдФрд░ FromIEEvent () рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИ |
LINQ
рддреЛ, рд╣рдо RxJS - LINQ рд╕рдорд░реНрдерди рдХреА рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдиреЗ .NET рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рдЗрд╕ рдЕрджреНрднреБрдд рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред
LINQ рдХрд╛ рдЕрднрд┐рдкреНрд░рд╛рдп рднрд╛рд╖рд╛ рдПрдХреАрдХреГрдд рдХреНрд╡реЗрд░реА рд╕реЗ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдЧреНрд░рд╣ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред RxJS рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рддрд░реАрдХреЗ рдирд╣реАрдВ рдЖрдП, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА:
- рдЪреБрдиреЗрдВ (SelectMany)
- рдЯреЗрдХ (рдЯреЗрдХ рдпреВрдЯрд┐рд▓, рдЯреЗрдХрд╡рд╛рдЗрд▓, рдЯреЗрдХрд▓реИрд╕реНрдЯ)
- рдЬрд╣рд╛рдБ
- рд╕реНрдХрд┐рдк (SkipUntil, SkipWhile, SkipLast)
- GroupBy
- рдЖрджрд┐
рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ, рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рд╣реИрдВ:
- DistinctUntilChanged - рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред OnNext, OnCompleted рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдкрд░ рдЙрдард╛рдП рдЬрд╛рдПрдВрдЧреЗред
- Do - DistinctUntilChanged рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирдП рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
- рдереНрд░реЙрдЯрд▓ - рдиреНрдпреВрдирддрдо рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдирдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
- рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк (RemoveTimestamp) - рдСрдкрд░реЗрдЯрд░ рдХреЛ рдбреЗрдЯрд╛ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рдЕрдЧрд▓рд╛ рд╡рд┐рд╡рд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдореИрдВрдиреЗ рдкреВрд░реА рд╕реВрдЪреА рдирд╣реАрдВ рджреА, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдХреА рддрд░реАрдХреЗ рдЖрдк рдЦреБрдж рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдХреА рд╕реНрдкрд╖реНрдЯ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдЖрд░реЗрдЦ рд╣реИ:

рдЪреВрдВрдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ рднрд╛рд╡ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓рд┐рдиреЗрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХреА рднреВрдорд┐рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ:
var items = [1, 2, 3, 4, 5]; var observable = Rx.Observable.FromArray(items).Select(function (item) { return { Value: item, Sqrt: Math.sqrt(item) }; }).Where(function (item) { return item.Value + 2 < 5; });
рдирдП рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддреЗ рд╣реБрдП (рдбрд┐рд╕реНрдЯрд┐рдВрдХреНрдЯ рдпреВрдЯрд┐рд▓рд┐рд▓, рдереНрд░реЙрдЯрд▓, рдЖрджрд┐), рдореИрдВ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рддреЛ рдереНрд░реЙрдЯрд▓ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓ рдФрд░ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓ рджреЗрдЧрд╛, рдФрд░ рдбрд┐рд╕реНрдЯрд┐рдВрдЪрдЯреБрдЗрд▓рдЪреЗрдВрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо рдХрд░ рджреЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдХреЛрдб:
var input = $("#textbox").toObservable("keyup") .Select(function (event) { return $(event.target).val(); }) .Timestamp() .Do(function (inp) { var text = "I: " + inp.Timestamp + "-" + inp.Value; $(" ").text(text).appendTo("#content"); }) .RemoveTimestamp() .Throttle(1000) .Timestamp() .Do(function (inp) { var text = "T: " + inp.Timestamp + "-" + inp.Value; $(" ").text(text).appendTo("#content"); }) .RemoveTimestamp() .DistinctUntilChanged(); var subscribtion = input.Subscribe(function (data) { $(" ").text("Your text: " + data).appendTo("#content"); });
рдЗрд╕ рдкреНрд░рдХрд╛рд░, DistinctUntilChanged рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣реЛ!
рд▓реЗрдЦ рдХреЗ рдЗрд╕ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдЙрди рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬрд┐рдирдХрд╛ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рдмрд╛рд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред
рдЖрдкрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рд▓рд┐рдЦрд╛ рд╣реИ:
$.ajax({ url: "your_url", dataType: "json", success: function (data, textStatus, xhr) { $("#results").empty(); $.each(data[1], function (_, result) { $("#results").append(" " + result + " "); }); }, error: function (xhr, textStatus, errorThrown) { $("#error").text(errorThrown); } });
рдореИрдВ рдЕрдХреНрд╕рд░ рд╕реЛрдЪрддрд╛ рд╣реВрдВред рдЙрд╕рдХреА рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рд╕рд╣реА рд╣реИ, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рд╣реИ, рдЬреЛ "рд╕реНрдкреИрдЧреЗрдЯреА рдХреЛрдб" рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
RxJS рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ rx.jQuery рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ jQuery рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреБрди: рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░реЗрдВрдЧреЗ:
function serviceCall(text) { return $.ajaxAsObservable( { url: "your_url", dataType: "json", format: "json", data: text }); } var source = serviceCall("search me"); var handle = source.Subscribe(function (result) { $("#results").append(" " + result + " "); }, function (exn) { $("#error").text(exn); });
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдХреЛ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛, рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЛ рдПрд╕реЗрдВрд╕ рдореЗрдВ рд╣реА рд▓рдкреЗрдЯ рджрд┐рдпрд╛ред
рдЕрдВрддрднрд╛рд╖рдг
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреНрд╕ рдХреА рд╢рдХреНрддрд┐ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рджрд╛рдпрд░рд╛ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХрд▓реЗрдХреНрд╢рдВрд╕ рдФрд░ рдЖрд░рдПрдХреНрд╕рдЬреЗрдПрд╕ рдХреЗ рджрд░реНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХреЛрдб рд▓реЗрдЦрди рдкреНрд░рдерд╛рдУрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг, рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд░рджреНрдж рдХрд░рдирд╛, рдФрд░ SelectMany рдСрдкрд░реЗрдЯрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рднрд┐рдХреНрд╖реБ рдкреНрд░рдХрдЯ рд╣реЛрддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЙрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХред
рдкреБрдирд╢реНрдЪ
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░рддреА рд╣реИ: