我試圖在top-level處分配一個const
,其中的值需要來自異步函數。但是,我正在使用的生產服務器上的nodejs版本不夠新,無法支持Wait,因此我無法執行以下操作:
const value = await f(x)
我不能在then
之類的函數中聲明變量,因為它在頂層沒有作用域,所以這樣的函數不起作用:
f(x).then(val=>{const value=val}) // no top-level const value afterwards
如何在這個環境中正確初始化const
?
如果有幫助的話,對于這種特殊情況,函數確實會為我傳遞的特定值同步返回,但由于它被定義為異步的,有時會異步返回,因此實際上一直在返回承諾。
作為一種(可怕的)解決方法,我考慮簡單地將const
分配給Promise,然后在需要時使用.then()
提取值。然而,盡管承諾得到了解決,但這似乎總是會導致值被非同步提取,這意味著它不會像我需要值時那樣工作,我需要它的時候就在此時,而不是在當前函數完成后或任何時候。
您需要用“let”而不是const定義var,然后在“then”中賦值。
也許你有更好的方法來做這件事,但有了contexte,我會這樣做。