簡體   English   中英

RangeError:最大調用堆棧大小超過Node.js貓鼬

[英]RangeError: Maximum call stack size exceeded Nodejs mongoose

想測試在數據庫mongodb中插入新文檔的速度,但是,當插入量很大時,它返回以下錯誤:“ RangeError:超出最大調用堆棧大小”誰能告訴我為什么我得到消息嗎?

var counters2Schema = new mongoose.Schema({'_id': ObjectId, 'seq':String}, { versionKey: false, collection: 'counters'  }),

var k = 100000;
testCUPwrite function (i) {
     var MyObjectId = mongoose.Types.ObjectId;
     MyObjectId = new MyObjectId();
     var counters2Model = new mongoose.model("counters", counters2Schema);
     new counters2Model({'seq': MyObjectId}). save ();
     console.log ('teste_' + MyObjectId);
     if (i <k) {
         i + +;
         setTimeout (testCUPwrite (i), 1);
     }

}
testCUPwrite (0);

謝謝

這行:

setTimeout (testCUPwrite (i), 1);

沒有按照你的想法去做。 那是直接在當​​前堆棧中執行testCPUWrite函數。 它沒有像您想的那樣使用setTimeout 就像是

setTimeout(testCUPwrite.bind(null, i), 1);

可能會讓你走。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM