node.js - 吉普 : how to use new filename as parameter of write function?

标签 node.js

我正在使用 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/

相关文章:

javascript - 如何导入只有 JSDoc 注释的 JavaScript 模块

javascript - 当我需要 ('node-expat' )时,抛出错误 : Could not locate the bindings file

windows - 在不同位置安装nodejs的最佳方法是什么

node.js - Mocha 测试 i18n TypeError : Cannot read property 'text50' of undefined

javascript - 您是否应该在 socket.io 中为可扩展应用程序手动批处理数据包?

javascript - 我应该如何在 javascript 或 nodeJs 中验证电子邮件地址是否存在和域名是否存在?

javascript - 调用阴影原型(prototype)方法的更简单/更好的方法?

node.js - 当数据量很大时,Angular 2 http get 请求被调用两次

node.js - 使用 express 服务 svg 文件

javascript - 使用子选择序列化 JS 自定义查询