2016-04-25 5 views
1

Also ich versuche, eine Funktion einer Klasse zu machen, die ich async gemacht habe, aber Webpack gibt mir einen Fehler beim Kompilieren der Klasse.Wie kann ich async/await in einer JavaScript-Klasse es6 verwenden?

würde mein Code so etwas wie dieses:

class MyClass { 

    constructor(apiService) { 
     this._apiService = apiService; 
    } 

    async updateInformation() { 
     await this._apiService.updateInformation(); 
     // .. do more stuff I have to do 
    } 
} 

Der Fehler, dass webpack gibt mir ist:

Module build failed: SyntaxError: Unexpected token 

(Die unerwartete Token verweist auf die 'u' nach async)

+0

Was ist Ihre Bündelung/Transpiler-Setup? babel6, webpack ... –

+1

'async/await' ist nicht Teil von ES6, daher wird es nicht in Umgebungen ausgeführt, die (nur) ES6 unterstützen. Sie müssen ES6-Code zuerst konvertieren (z. B. mit Babel oder Regenerator). –

Antwort

1

Ja, also habe ich nicht bemerkt, dass ich meiner babelrc-Datei nicht das Stage-0-Preset hinzugefügt habe, das async/await enthält.

Der Code funktioniert gut.

EDIT: Wie RGraham sagt, Stufe-3

+0

'stage-0' ist nur für Strohmann Vorschläge. Es enthält viel unfinalisiertes Verhalten und ist definitiv nicht * ES6. Wenn Sie dies über ein Babel-Preset tun wollten, wäre es [stage-3] (https://babeljs.io/docs/plugins/preset-stage-3/) – CodingIntrigue

0

async/await ist Teil ES7 Vorschlag. Also müssen Sie babel/traceur verwenden, um Ihren Code zu ES6/ES5 zu kompilieren

+3

ES7 ist bereits abgeschlossen (dh keine neuen Features) werden hinzugefügt). 'async/await' kommt in einer zukünftigen Version, frühestens nächstes Jahr. –

Verwandte Themen