我正在使用 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 的新彩色图像覆盖。
所以我想知道如何解决这个问题? 在多线程中使用它是完全可以的,那么如何使用“文件名”字符串的副本在写入函数的参数中使用它呢?
问候
亚历克斯
最佳答案
使用let代替var
let filename = 'test' + i + '.png';
关于node.js - 吉普 : how to use new filename as parameter of write function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674211/