我正在使用带有 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 个数字。我认为这是因为我不等待其他图像被读取但我不知道该怎么做?非常感谢提前为我糟糕的英语感到抱歉。