Czekam na obietnicę w pętli for

Mam trochę kłopotów z dostaniem się do całej tej asynchronicznej rzeczy. Używam pliku pdf.js, aby odczytać zawartość pliku pdf. Wszystko działa, ale kolejność egzekucji sprawia mi kłopoty. To jest kod, który mam:

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);
                })
            });
        }
    })
}

To działa zgodnie z przeznaczeniem, ale chciałbym je przekazaćcontents kiedy wszystkie strony są przetwarzane, a ich bidiTexts są powiązane z treścią. Jeśli po prostu ustawię wywołanie funkcji za pomocącontents jako argument przed ostatnim zamknięciem} potem zostaje wywołany na początku.

questionAnswers(2)

yourAnswerToTheQuestion