Jsdom: Ukuran tumpukan panggilan maksimum terlampaui saat memperluas global dengan parentWindow

Dibuat pada 23 Jan 2014  ·  4Komentar  ·  Sumber: jsdom/jsdom

Saya perhatikan ketika memperluas variabel global dengan jsdom().parentWindow , dan juga menyertakan perpustakaan besar seperti bluebird atau engine.io , kesalahan JSDOM dengan ukuran tumpukan panggilan maksimum terlampaui.

JSDOM terus berfungsi jika dibungkus dengan pernyataan try...catch , jadi apakah mungkin untuk menangani kesalahan ini dengan baik di dalam JSDOM?

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

Hasil dalam:

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

Saya mengerti bahwa use case ini cukup aneh, tetapi saya ingin tahu apa arti sebenarnya dari kesalahan ini.

Komentar yang paling membantu

@brianmcd ahhhh saya mengerti mengapa melakukan ini sekarang.

Jika ada orang gila yang mengalami masalah ini di masa mendatang, gunakan _.defaults alih-alih _.extend untuk menghindari masalah ini.

Semua 4 komentar

Ini adalah masalah karena window.setTimeout jsdom berisi panggilan ke global.setTimeout . Ketika mereka sama, ada stack overflow.

Karena NodeJS memiliki setTimeout, apakah ada alasan window.setTimeout tidak bisa hanya menjadi tiruan dari fungsi asli?

Sudah lama sejak saya bekerja di JSDOM, tetapi IIRC implementasi timer JSDOM melacak timer terbuka sehingga kami dapat membatalkannya di window.close untuk menghindari kebocoran memori dari timer yang menggantung.

@brianmcd ahhhh saya mengerti mengapa melakukan ini sekarang.

Jika ada orang gila yang mengalami masalah ini di masa mendatang, gunakan _.defaults alih-alih _.extend untuk menghindari masalah ini.

Sangat senang Anda memposting komentar terakhir Anda tentang menggunakan defaults alih-alih extend . Terima kasih @JacksonGariety!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

drewish picture drewish  ·  4Komentar

Progyan1997 picture Progyan1997  ·  3Komentar

lehni picture lehni  ·  4Komentar

kilianc picture kilianc  ·  4Komentar

philipwalton picture philipwalton  ·  4Komentar