Как дождаться завершения записи файла перед его использованием? - PullRequest
0 голосов
/ 01 августа 2020

У меня создается файл png, но когда я пытаюсь его использовать, он пытается сделать это до того, как закончит его запись

как мне заставить его дождаться, пока файл не закончит запись, прежде чем использовать его ?

                PImage.encodePNGToStream(img, fs.createWriteStream('template.out.png'));

            channel.send("Drawn By: "+req.body["Drawer"], { files: ["./template.out.png"] });

1 Ответ

0 голосов
/ 01 августа 2020

Согласно PImage-docs encodePNGToStream является асинхронным и возвращает обещание. Таким образом, вам нужно await или использовать then(...).

Например

await PImage.encodePNGToStream(img, fs.createWriteStream('template.out.png'));
channel.send("Drawn By: "+req.body["Drawer"], { files: ["./template.out.png"] });

или

PImage.encodePNGToStream(img, fs.createWriteStream('template.out.png')).then(_ => channel.send("Drawn By: "+req.body["Drawer"], { files: ["./template.out.png"] }));
...