1

我正在使用带有 nodejs 的 Jimp 来创建日期的动态图像,这是我的功能:

const buildDate = function(date) {
    return new Promise(function(resolve, reject) {
        Jimp.create(55, 500).then(dateCanvas => {
            for (let i = 0; i < date.length; i++) {
                let c = date.charAt(i);
                let rand = Math.floor(Math.random() * 3);
                console.log(`${c}${rand}.png`);
                Jimp.read(path.join(numbers, (isNumber(c)?`${c}${rand}.png`:`s${rand}.png`)), (err, numberImage) => {
                    if (err) return reject(err);
                    dateCanvas.composite(numberImage, i*25, 0, [], () => {
                        
                        if (i >= (date.length-1)) return resolve(dateCanvas);
                    });
                });
            }
        });
    });
};

我正在使用这样的功能:

buildDate('25/12/2009')
         .then(dateCanvas => {
               image.blit(dateCanvas, 139, 1224)
         }).catch(err => reject(err));

我的“数字文件夹”中有 3 个 png,每个数字从 0 到 9,共 30 * 55。

我的问题是:结果中只显示 2 个数字。我认为这是因为我不等待其他图像被读取但我不知道该怎么做?非常感谢提前为我糟糕的英语感到抱歉。

4

0 回答 0