В настоящее время я использую Discord. js и Node для моего бота, который отправляет вложения с заданным интервалом. Я столкнулся с проблемой, из-за которой иногда вложения загружаются не полностью (они загружаются бесконечно, и только когда я нажимаю «открыть оригинал», я могу увидеть несколько верхних пикселей изображения). Почему это? Причина в том, что при отправке вложения файл вложения не готов?
Добавление изображения в файл
async function makeCanvas(img, code, channel) {
const canvas = createCanvas(900, 1375);
const ctx = canvas.getContext("2d");
ctx.fillStyle = "#000000";
ctx.fillRect(0, 1255, 900, 120);
let image = await loadImage(img);
ctx.drawImage(image, 0, -40);
ctx.font = "bold 100px sans-serif'";
ctx.textAlign = "center";
ctx.fillStyle = "#FFFFFF";
ctx.fillText(`${code}`, 435, 1350);
const writeable = fs.createWriteStream(`./temp/${channel.id}.png`);
const readable = canvas.createPNGStream();
const connection = readable.pipe(writeable);
return connection.path;
}
Отправка вложения
const imgCode = await applyCodeToImg(url, code, message.channel);
await message.channel.send("A new attachment has appeared!", new Discord.MessageAttachment(imgCode));
Я все еще новичок в JavaScript и Node, пожалуйста, терпите меня!