gpt4 book ai didi

javascript - 错误 : EMFILE: too many open files

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:01 24 4
gpt4 key购买 nike

使用 nw.js,我只是想将图像保存在具有不同随机名称的 img 元素数组中。

但是有一些错误,我的代码有问题吗?

for (i = 0; i < imgs.length; i++) {
request(imgs[i].getAttribute('src')).on('error', function(err) {
throw err
}).pipe(fs.createWriteStream('data/imgs/' + randomString))
}

imgs[] 是一个包含 100-500 个 html img 元素的数组,但我正在接收

Error: EMFILE: too many open files, open *<directory>*

还有一个错误:

"Uncaught Error: socket hang up"

虽然它保存了一些图像,但其中一些已损坏,并且它创建的图像比实际数量多。

最佳答案

使用graceful-fs模块,它是 fs 模块的直接替代品。它是原生 fs 模块的包装器。引用 docs of graceful-fs module ,

Queues up open and readdir calls, and retries them once something closes if there is an EMFILE error from too many file descriptors.

由于它公开了与原生 fs 模块相同的 API,您可以像使用普通的 fs 模块一样使用它。

// use just like fs
var fs = require('graceful-fs');

注意:这个库是由 Isaac Z. Schlueter 创建的,他是 Node.js 的核心开发人员之一。

关于javascript - 错误 : EMFILE: too many open files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com