рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ 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
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдХрд╛рдлреА рд╡рд┐рдЪрд┐рддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред
рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ jsdom рдХреЗ window.setTimeout
рдореЗрдВ global.setTimeout
рдХреЙрд▓ рд╣реИред рдЬрдм рд╡реЗ рд╡рд╣реА рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╣реЛрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ NodeJS рдиреЗ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ window.setTimeout рдХреЗрд╡рд▓ рдореВрд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреНрд▓реЛрди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
JSDOM рдкрд░ рдХрд╛рдо рдХрд┐рдП рд╣реБрдП рдХреБрдЫ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди IIRC JSDOM рдЯрд╛рдЗрдорд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЦреБрд▓реЗ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рд▓рдЯрдХрдиреЗ рд╡рд╛рд▓реЗ рдЯрд╛рдЗрдорд░ рд╕реЗ рдореЗрдореЛрд░реА рд▓реАрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ window.close
рдореЗрдВ рд░рджреНрдж рдХрд░ рд╕рдХреЗрдВред
@brianmcd рдЖрд╣ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдм рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдкрд╛рдЧрд▓ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ, рддреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП _.extend
рдмрдЬрд╛рдп _.defaults
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рддреЛ рдЦреБрд╢ рдЖрдк рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдЯрд┐рдкреНрдкрдгреА рдкреЛрд╕реНрдЯ рдХреА defaults
рдХреЗ рдмрдЬрд╛рдп extend
ред рдзрдиреНрдпрд╡рд╛рдж @JacksonGariety!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@brianmcd рдЖрд╣ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдм рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдкрд╛рдЧрд▓ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ, рддреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП
_.extend
рдмрдЬрд╛рдп_.defaults
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред