рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ - рднрд╛рдЧ 3

рдЖрдЬ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рдЯреАрдо рдХреЗ рдмрд╣реБрдЖрдпрд╛рдореА рдкрд░реАрдХреНрд╖рдг рд╣реБрдП, рдЬрд┐рд╕рдХреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛ рд╣реИ ред


рдкрд░реАрдХреНрд╖рдгреЛрдВ рдиреЗ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдпрд╛? рдЯреАрдо рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди ... рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдХреЗрд╡рд╛рдИрд╕реА рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдИ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓ рджреА рдЬрд╛рддреА рд╣реИрдВред рдпрджрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдПрдХ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдПрдХ рдпреБрджреНрдз рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рдордЭреВрдВрдЧрд╛ рдХрд┐ рдкреНрд░рдореБрдЦ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдирд╣реАрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдПрдХ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:


describe('configure and run database requests', () => { const context = require('../src/storage/requestContext'); const requestHandler = require('../src/storage/requestHandler'); it('should get full recordset from db', (done) => { for(let key of context.rules.keys()) { let handle = requestHandler.bind(context, [key]); context.store.subscribe(handle); } const assert = checkDataIsReady.bind(context, [done]); context.store.subscribe(assert); const note = { Id: 1, UserId: 38 }; const start = { type: 'NOTE', note }; context.store.dispatch(start); }); function checkDataIsReady(args) { if(notAllDataIsHereYet()) return; checkUserRecord(); // //    ,  //        // const checkIsCompleted = args[0]; checkIsCompleted(); } function notAllDataIsHereYet(){ // //  ,   //       // return false; } function checkUserRecord(){ const user = context.store.getState().user; expect(user.Id).toEqual(38); expect(user.Name).toEqual('Jack'); } }); 

рдЕрдВрддрд░ рдХреА рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреА рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдХреНрд╡реЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢рдмреНрджрдХреЛрд╢ context.rules рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рд╢рдмреНрджрдХреЛрд╢ рдФрд░ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЬреЛ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рд╡реЗ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреЛрд░реЗрдЬ context.db , рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕реНрдЯреЗрдЯ рдХрдВрдЯреЗрдирд░ рд╕реНрдЯреЛрд░реЗрдЬ context.store , рдФрд░ рдкреВрд░реНрд╡реЛрдХреНрдд рдбрд┐рдХреНрд╢рдирд░реА рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред


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


рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕рдорд╛рдзрд╛рди рд╣рдореЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЗрд╡рд╛рдИрд╕реА рдЪреЗрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ ( Set ) рдХреЗ Set рд░реВрдк рдореЗрдВ, рдЬреЛ рдХреНрд╡реЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╕рдордп рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдФрд░ рдПрдХ рдкрддрд╛ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдВрдЬрд┐рдпрд╛рдБ рдбрд╛рд▓рддреЗ рд╣реИрдВ: user , person рдФрд░ address ред


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


 let handle = requestHandler.bind(context, [key]); context.store.subscribe(handle); 

рдЖрдЬ рдХреЗ рд╕рднреА рдЪрд┐рд▓рд┐рдВрдЧ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ ...

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


All Articles