2016-04-25 21 views
1

所以我試圖做一個類我做異步的功能,但編譯類時,webpack給我一個錯誤。如何在es6 javascript類中使用async/await?

我的代碼將是這樣的:

class MyClass { 

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

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

的錯誤的WebPack給我的是:

Module build failed: SyntaxError: Unexpected token 

(該意外標記點的 'U' 異步後)

+0

什麼是您的捆綁/轉換器設置? babel6,webpack ... –

+1

'async/await'不是ES6的一部分,所以它不會在(僅)支持ES6的環境中運行。您需要先將其轉換爲ES6代碼(例如,使用Babel或再生器)。 –

回答

1

是的,所以我沒有意識到我沒有向我的.babelrc文件添加包含async/await的stage-0預設。

該代碼工作得很好。

編輯:由於RGraham說,階段3

+0

'stage-0'只適用於strawman的提議。它包括許多未定型的行爲,並且*絕對不是* ES6。如果你想通過巴貝爾預設來做到這一點,它將是[階段3](https://babeljs.io/docs/plugins/preset-stage-3/) – CodingIntrigue

0

async/awaitES7建議的一部分。因此,您需要使用babel/traceur將您的代碼編譯爲ES6/ES5

+3

ES7已經完成(意思是,沒有新功能將被添加)。 「異步/等待」將在明年最早發佈。 –