MongoDB рдореЗрдВ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдерд╛ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рд╕реЗ рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ Node.js рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдк рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкреНрд░рд┐рдп рд╣реИрд░реЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдХрддрд╛рд░ рдореЗрдВ рдЕрдЧрд▓реА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреА рд╕рдорд╕реНрдпрд╛ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдЧреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, AQueue рдореЙрдбреНрдпреВрд▓ (рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреА рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдХрддрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, Express.js (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рджреГрд╢реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдорд╛рд░реНрдЧ рдкрд░рдд рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдирд┐рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЙрд▓рдмреИрдХ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдЧрд▓рд╛ () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ!
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдХрддрд╛рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- AddTo рдлрд╝рдВрдХреНрд╢рди - рдХрддрд╛рд░ рдореЗрдВ рдЕрдЧрд▓рд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- рдЕрдЧрд▓рд╛ рдлрд╝рдВрдХреНрд╢рди - рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреНрд░рдо рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдкреВрд░реНрдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдп - рд╕рдлрд▓ рд╕рдорд╛рдкрди рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЬрдм рдЧрд▓рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
- рдлрд╝рдВрдХреНрд╢рди рд░рди - рдХрддрд╛рд░ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдХреЙрд▓ рддрдВрддреНрд░ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред
- рдХреНрд╖ рдЧреБрдг - рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- Cb рдкреНрд░реЙрдкрд░реНрдЯреА - рдХреЙрд▓ рдХрддрд╛рд░ рд╕рдорд╛рдкрди рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕рдорд╛рд░реЛрд╣ AQueue ( ) {
- var рд╡рд╣ = рдпрд╣ ;
- рдХрд┐ред рдХреНрдпреВ = [ ] ;
- рдХрд┐ред cb = null ;
- рдХрд┐ред addTo = function ( f ) {
- рдХрд┐ред рдХреНрд╖ ред рдзрдХреНрдХрд╛ ( рдПрдл ) ;
- рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░реЛ ;
- } ;
- рдХрд┐ред рдЕрдЧрд▓рд╛ = рдлрд╝рдВрдХреНрд╢рди ( рддреНрд░реБрдЯрд┐ , рдбреЗрдЯрд╛ ) {
- рдЕрдЧрд░ ( рдХрд┐ред рдХреНрд╖ ред рд▓рдВрдмрд╛рдИ > 0 ) {
- var рдЪ = рд╡рд╣ред рдХреНрд╖ ред рдкрд╛рд░реА ( ) ;
- рдЕрдЧрд░ ( рдЧрд▓рддреА рд╕реЗ ) {
- рдХрд┐ред рдХреНрдпреВ = [ ] ;
- рдХрд┐ред рд╕реАрдмреА ( рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг , рдбреЗрдЯрд╛ ) ;
- } {
- f ( рд╡рд╣ред рдЕрдЧрд▓рд╛ , рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) ;
- }
- } {
- рдХрд┐ред рд╕реАрдмреА ( рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг , рдбреЗрдЯрд╛ ) ;
- }
- } ;
- рдХрд┐ред рдкреВрд░рд╛ = рдХрд╛рд░реНрдп ( cb ) {
- рдХрд┐ред рд╕реАрдмреА = рд╕реАрдмреА ;
- рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░реЛ ;
- } ;
- рдХрд┐ред рд░рди = рдлрд╝рдВрдХреНрд╢рди ( ) {
- рд╡рд╣ рд▓реМрдЯрд╛рдУ ред рдЕрдЧрд▓рд╛ ( рдЕрд╢рдХреНрдд , рдЕрд╢рдХреНрдд ) ;
- } ;
- }
- рдирд┐рд░реНрдпрд╛рддред AQueue = AQueue ;
рдХреЗ рдЙрдкрдпреЛрдЧ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд AQueue рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
- var AQueue = reqiure ( 'aqueue' ) ред AQueue;
- var aq = new AQueue ( ) ;
- aqред addTo ( рдлрд╝рдВрдХреНрд╢рди ( рдЕрдЧрд▓рд╛ , рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) {
- // рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВ
- рдЕрдЧрд▓рд╛ ( рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) ;
- } ) ред addTo ( рдлрд╝рдВрдХреНрд╢рди ( рдЕрдЧрд▓рд╛ , рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) {
- // рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВ
- // рдЖрдк рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдкреЗрдЯрдХрд░ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
- рдЕрдЧрд▓рд╛ ( рдЧрд▓рдд , { рдбреЗрдЯрд╛ : рдбреЗрдЯрд╛ , рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ : рд╕рддреНрдп } ) ;
- } ) ред рдкреВрд░реНрдг ( рдлрд╝рдВрдХреНрд╢рди ( рддреНрд░реБрдЯрд┐ , рдбреЗрдЯрд╛ ) {
- // рдЕрдВрддрд┐рдо рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВред
- } ) ред рд░рди ( ) ;