簡體   English   中英

如果 function 不使用等待,它是否應該是異步的

[英]Should a function be async if it does not use await

考慮一個 javascript function,它本質上是另一個異步 function 的包裝器。 包裝 function 本身是否必須是異步的,即使它確實需要等待底層 promise?

這是一個簡單的例子:

function myWrapperFunction() {
    console.log('Calling myAsyncFunction')
    return myAsyncFunction();
}

async function myAsyncFunction() {
    const url = 'URL'
    const data = await fetch(url)
    return JSON.parse(data)
}

myWrapperFunction應該是async嗎? 我猜它不需要給出它只是從myAsyncFunction 但是,es-lint 的no-return-await規則的正確代碼部分中的第一個示例另有提示: https://eslint.org/docs/rules/no-return-await

謝謝!

我會這樣寫:

function myWrapperFunction() {
    console.log('Calling myAsyncFunction')
    const promise = myAsyncFunction();
    return promise;
}

以提高代碼的可維護性。 例如,確保其他人不需要問自己返回 Promise 是否是故意的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM