Я пробовал много вариантов, чтобы моя функция возвращала параметр, чтобы я мог запускать свои функции только после завершения одного шага, но в поисках лучшего способа, который не привел бы меня в ад обратного вызова.
У меня есть следующая функция
function convertPdfToImage(fileName) {
return new Promise((resolve, reject) => {
var pdfImage = new PDFImage(fileName+".pdf");
pdfImage.convertFile().then(function (imagePaths) {
var file = fs.createWriteStream(imagePaths);
file.end();
file.on("finish", () => { resolve(true); });
file.on("error", reject);
return resolve(true)
});
});
}
Который я здесь называю вот так:
Promise.all([convertPdfToImage('test2'), convertPdfToImage('test1')])})
.then(function () {
compareItems(codeId);
});
Этот метод вызывается в PromiseAll
function convertPdfToImage(env: string, shareClassId: string[]) {
return new Promise((resolve, reject) => {
var pdfImage = new PDFImage("output/" + shareClassId + env + ".pdf");
pdfImage.convertFile().then(function (imagePaths) {
var file = fs.createWriteStream(imagePaths);
file.end();
file.on("finish", () => { resolve(true); });
file.on("error", reject);
return resolve(true)
});
});
}
. проблема независимо от того, что я пытаюсь, я не могу гарантировать, что CompareItems запускается после convertPdfToImage (PromiseAll разрешен)