2017-08-07 125 views
2

目前,我有這樣的代碼:如何創建一個命名的異步箭頭函數?

async function getConnection(){ 
    // logic here... 
} 

,使其與我的代碼庫的其餘部分保持一致,我想把它變成一個箭頭的功能。我試過async getConnection() => { ... }但這似乎沒有工作。什麼是正確的方法來做到這一點?

回答

2

箭函數沒有名字,但你可以將它們分配到這樣一個變量:

const normalFunc =() => { ... }; 
const asyncFunc = async() => { ... }; 

不過請注意,即箭頭功能都沒有定期的功能只是短的符號,因爲有有一些細微差別需要注意(see this article for details)。但是,如果您瞭解這些差異並且不影響您的代碼,則應該沒問題。

1

箭函數不能有一個名字

const getConnection = async() => {} 

但簡單替換的所有功能,以箭頭的功能簡直是愚蠢的和可能是容易出錯。 Learn all differences之前這樣做。

+0

主要一個是異步箭頭功能不超過從建築,'this'指'Window'攜帶上下文。 – Crowes

+1

@Crowes我認爲更清楚一點,'this'將引用箭頭函數聲明的任何函數或對象的'this'。我假設const將在全局範圍內聲明,因此您是正確的 –

+0

@BrettReinhard看看這個:https://stackoverflow.com/questions/22939130/when-should-i-use-arrow-functions-in-ecmascript-6?answertab=votes#tab-top – Crowes

1

箭頭函數不能用名稱聲明,但可以分配。

嘗試:

var getConnection = async() => { 
    return 'It works'; 
} 

getConnection().then(message => console.log(message)) 

希望這有助於

相關問題