В ожидании обещания в течение цикла

У меня возникли некоторые проблемы, связанные с асинхронностью. Я использую pdf.js для чтения содержимого файла PDF. Все работает, однако порядок выполнения доставляет мне неприятности. Вот код, который у меня есть:

function getText(data) {
    var contents = [];
    PDFJS.getDocument(data).then(function(pdf) {
        var numPages = pdf.pdfInfo.numPages;
        for (var i = 1; i <= numPages; i++) {
            pdf.getPage(i).then(function(page) {
                page.getTextContent().then(function(content) {
                    contents.concat(content.bidiTexts);
                })
            });
        }
    })
}

Это работает как задумано, однако я хотел бы передатьcontents когда все страницы обрабатываются и их bidiTexts преобразуются в содержимое. Если я просто положил вызов функции сcontents в качестве аргумента перед последним закрытием} тогда это вызывается рано.

Ответы на вопрос(2)

Ваш ответ на вопрос