рдЪрд░рдг рдкреИрдЯрд░реНрди рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓ рдХрд╛ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдирд╛

MongoDB рдореЗрдВ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдерд╛ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рд╕реЗ рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ Node.js рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдк рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкреНрд░рд┐рдп рд╣реИрд░реЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред


рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рдХрддрд╛рд░ рдореЗрдВ рдЕрдЧрд▓реА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреА рд╕рдорд╕реНрдпрд╛ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдЧреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, AQueue рдореЙрдбреНрдпреВрд▓ (рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреА рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдХрддрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, Express.js (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рджреГрд╢реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдорд╛рд░реНрдЧ рдкрд░рдд рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдирд┐рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЙрд▓рдмреИрдХ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдЧрд▓рд╛ () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ!

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдХрддрд╛рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


  1. рд╕рдорд╛рд░реЛрд╣ AQueue ( ) {
  2. var рд╡рд╣ = рдпрд╣ ;
  3. рдХрд┐ред рдХреНрдпреВ = [ ] ;
  4. рдХрд┐ред cb = null ;
  5. рдХрд┐ред addTo = function ( f ) {
  6. рдХрд┐ред рдХреНрд╖ ред рдзрдХреНрдХрд╛ ( рдПрдл ) ;
  7. рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░реЛ ;
  8. } ;
  9. рдХрд┐ред рдЕрдЧрд▓рд╛ = рдлрд╝рдВрдХреНрд╢рди ( рддреНрд░реБрдЯрд┐ , рдбреЗрдЯрд╛ ) {
  10. рдЕрдЧрд░ ( рдХрд┐ред рдХреНрд╖ ред рд▓рдВрдмрд╛рдИ > 0 ) {
  11. var рдЪ = рд╡рд╣ред рдХреНрд╖ ред рдкрд╛рд░реА ( ) ;
  12. рдЕрдЧрд░ ( рдЧрд▓рддреА рд╕реЗ ) {
  13. рдХрд┐ред рдХреНрдпреВ = [ ] ;
  14. рдХрд┐ред рд╕реАрдмреА ( рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг , рдбреЗрдЯрд╛ ) ;
  15. } {
  16. f ( рд╡рд╣ред рдЕрдЧрд▓рд╛ , рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) ;
  17. }
  18. } {
  19. рдХрд┐ред рд╕реАрдмреА ( рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг , рдбреЗрдЯрд╛ ) ;
  20. }
  21. } ;
  22. рдХрд┐ред рдкреВрд░рд╛ = рдХрд╛рд░реНрдп ( cb ) {
  23. рдХрд┐ред рд╕реАрдмреА = рд╕реАрдмреА ;
  24. рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░реЛ ;
  25. } ;
  26. рдХрд┐ред рд░рди = рдлрд╝рдВрдХреНрд╢рди ( ) {
  27. рд╡рд╣ рд▓реМрдЯрд╛рдУ ред рдЕрдЧрд▓рд╛ ( рдЕрд╢рдХреНрдд , рдЕрд╢рдХреНрдд ) ;
  28. } ;
  29. }
  30. рдирд┐рд░реНрдпрд╛рддред AQueue = AQueue ;


рдХреЗ рдЙрдкрдпреЛрдЧ


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд AQueue рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

  1. var AQueue = reqiure ( 'aqueue' ) ред AQueue;
  2. var aq = new AQueue ( ) ;
  3. aqред addTo ( рдлрд╝рдВрдХреНрд╢рди ( рдЕрдЧрд▓рд╛ , рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) {
  4. // рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВ
  5. рдЕрдЧрд▓рд╛ ( рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) ;
  6. } ) ред addTo ( рдлрд╝рдВрдХреНрд╢рди ( рдЕрдЧрд▓рд╛ , рдЗрд░реЗрдЯ , рдбреЗрдЯрд╛ ) {
  7. // рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВ
  8. // рдЖрдк рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдкреЗрдЯрдХрд░ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
  9. рдЕрдЧрд▓рд╛ ( рдЧрд▓рдд , { рдбреЗрдЯрд╛ : рдбреЗрдЯрд╛ , рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ : рд╕рддреНрдп } ) ;
  10. } ) ред рдкреВрд░реНрдг ( рдлрд╝рдВрдХреНрд╢рди ( рддреНрд░реБрдЯрд┐ , рдбреЗрдЯрд╛ ) {
  11. // рдЕрдВрддрд┐рдо рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВред
  12. } ) ред рд░рди ( ) ;

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


All Articles