nodeJs huge array processing throws RangeError: Maximum call stack size exceeded

后端 未结 2 1835
清歌不尽
清歌不尽 2021-01-31 22:27

This is part of code to proceed big number of entries ( originally its works with file system and make some operations with files) . Is there any nice way to bypass the limitat

2条回答
  •  礼貌的吻别
    2021-01-31 22:58

    The problem is that you are making to many function calls. Setting the stack-size to a higher value will only increase the number of items you can handle, not solve the actual problem.

    You are calling the next iteration straight from your function, which makes it a recursive function. It's a bit hard to spot since it's going thru async.

    This code should work:

    var tifPreview = function (item, callback) {
      console.log(item);
    
      // defer the callback
      setImmediate(callback);
    }
    

    Read more about the setImmediate function here: http://nodejs.org/api/timers.html#timers_setimmediate_callback_arg

提交回复
热议问题