Jsdom: рдкреЗрд░реЗрдВрдЯрд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХрддрдо рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЬрдире░ 2014  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jsdom/jsdom

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ jsdom().parentWindow рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдФрд░ bluebird рдпрд╛ engine.io рдЬреИрд╕реА рдмрдбрд╝реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдзрд┐рдХрддрдо рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЬреЗрдПрд╕рдбреАрдУрдПрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рд░ рд╣реЛ рдЧрдИ рд╣реИрдВред

рдпрджрд┐ try...catch рдХрдерди рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ JSDOM рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ JSDOM рдХреЗ рднреАрддрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЗрдирд╛рдпрдд рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

_(global).extend(jsdom().parentWindow)
var engine = require('engine.io')

рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

node_modules/jsdom/lib/jsdom/browser/index.js:121
this.setTimeout = function (fn, ms) { return startTimer(setTimeout, clearT
                           ^
RangeError: Maximum call stack size exceeded

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдХрд╛рдлреА рд╡рд┐рдЪрд┐рддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@brianmcd рдЖрд╣ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдм рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдкрд╛рдЧрд▓ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ, рддреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП _.extend рдмрдЬрд╛рдп _.defaults рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ jsdom рдХреЗ window.setTimeout рдореЗрдВ global.setTimeout рдХреЙрд▓ рд╣реИред рдЬрдм рд╡реЗ рд╡рд╣реА рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╣реЛрддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ NodeJS рдиреЗ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ window.setTimeout рдХреЗрд╡рд▓ рдореВрд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреНрд▓реЛрди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

JSDOM рдкрд░ рдХрд╛рдо рдХрд┐рдП рд╣реБрдП рдХреБрдЫ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди IIRC JSDOM рдЯрд╛рдЗрдорд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЦреБрд▓реЗ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рд▓рдЯрдХрдиреЗ рд╡рд╛рд▓реЗ рдЯрд╛рдЗрдорд░ рд╕реЗ рдореЗрдореЛрд░реА рд▓реАрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ window.close рдореЗрдВ рд░рджреНрдж рдХрд░ рд╕рдХреЗрдВред

@brianmcd рдЖрд╣ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдм рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдкрд╛рдЧрд▓ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ, рддреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП _.extend рдмрдЬрд╛рдп _.defaults рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рддреЛ рдЦреБрд╢ рдЖрдк рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдЯрд┐рдкреНрдкрдгреА рдкреЛрд╕реНрдЯ рдХреА defaults рдХреЗ рдмрдЬрд╛рдп extend ред рдзрдиреНрдпрд╡рд╛рдж @JacksonGariety!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕