【发布时间】:2018-04-05 22:23:02
【问题描述】:
我正在使用 NodeJS 的 Jimp 模块在我的(大)nodejs 脚本中在我的文件名是动态生成的大循环内进行一些图像转换。
在进行我的 jimp 图像转换时,提供给写入函数参数的文件名已经更改。因为写入在回调中(所以是另一个线程?),我的循环已经在继续处理另一个循环步骤。
这是一个示例概述:
for (var i = 0; i < 10; ++i) {
var filename = 'test' + i + '.png';
//some script to generate my image : pupperteer screenshot of a webpage
Jimp.read(filename).then(function (image) {
image.greyscale().write(filename);
}).catch(function (err) {
console.error(err);
});
}
在这个例子中,我的脚本创建了彩色文件 test1.png,然后我可以看到一个 test2.png,它是 test1.png 的副本,但是是灰度的... 然后它被一个名为的新彩色图像覆盖test2.png。
所以我想知道如何解决这个问题? 在多线程中完全可以,那么如何使用“文件名”字符串的副本在写入函数的参数中使用它?
问候
亚历克斯
【问题讨论】:
标签: node.js