2017-03-07 5 views
0

Ich muss eine Rückgabe Versprechen innerhalb einer Funktion holen, um einige Daten zu konvertieren, bevor jemand anderes diese Daten verarbeiten konnte. Also habe ich diesen Code (vereinfacht nur die Idee zu zeigen):Reihenfolge der Versprechen Ausführung von Funktion

function test() { 

    return new Promise(function (resolve, reject) { 
    // Fetch('www.google.com') 
    setTimeout(resolve, 1000); 
    }).then(function() { 
    // convert data, etc 
    console.log(1); 
    }); 
} 
// after conversion, handle it to someone else 
test().then(console.log(2)); 

es Rennen, ich dachte, dass Konsole zeigen würde: 1 2 aber es hält 2 1. Gibt es andere Art und Weise, dies zu tun zeigen?

+0

Sie müssen '.then()' eine * Funktion * übergeben. 'test(). then (function() {console.log (2)});' –

Antwort

1

Genau wie Sie mit den console.log(1) haben, können Sie den zweiten Anruf in einer Funktion wickeln müssen, bevor es zu then als Rückruf vorbei.

test().then(function() { 
    console.log(2); 
}); 

Dann wird sich zeigen, 12 wie erwartet.

+0

Vielen Dank, verrückte Details ... – MarcosCunhaLima

Verwandte Themen