[英]Why doesn't TypeScript enforce async/await on promise?
我有以下代碼。 performAsyncAction
執行異步操作並返回Promise<Response>
。 在someFunction
,我很驚訝 TypeScript 沒有警告不要在返回承諾的函數上使用 await。
function performAsyncAction() {
return fetch('someservice');
}
function someFunction() {
const result = performAsyncAction(); // Was expecting typescript to give error here
}
我發現了一個相關的 linting 規則可能有助於promise-function-async
這不是錯誤,而是預期的行為。
async
,因此甚至不可能在那里等待await
Promise 還是.then
Promise,它唯一的語法糖(雖然有用)我絕對同意你的看法。 根據我的經驗,忘記等待承諾是大多數問題的根源,尤其是處理錯誤時。
盡管await/async
語法存在於純 JS 中,但引入另一種語法糖來通知 TS 編譯器您打算放棄在“后台”運行的承諾,這將是非常有意義的。
與任何其他嚴格檢查一樣,這將是可選的。
經驗。
async function someFunction() { const result = performAsyncAction(); // Compilation error } async function someFunction() { const result = along performAsyncAction(); // Returns promise } async function someFunction() { const result = await performAsyncAction(); // Awaits the promise }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.