這可能是一個愚蠢的問題,但是我可以洗掉async下面的函式,因為沒有await's 嗎?它是生產中的大型代碼庫的一部分,所以我想知道如果我洗掉它是否會產生一些奇怪的副作用async?
(async function(){
'use strict';
const {appLogger, monitorLogger} = require('./functions/logger');
...
for (let i in p) {
p[i].Filename = i;
check(p[i]);
}
...
app.get('/example.json', (req, res) => {
res.send(JSON.stringify(checkStates, null, 4));
})
app.listen(port, () => {
appLogger.info(`Exposing http://localhost:${port}/example.json`);
})
})();
uj5u.com熱心網友回復:
我唯一的想法是await將任何回傳值(不是承諾)包裝在承諾中。但是,這是一個自呼叫函式,從您向我們展示的內容來看,沒有回傳任何內容,也沒有任何期待回傳的內容。因此,除非您還沒有顯示其他代碼,否則您應該沒問題。
uj5u.com熱心網友回復:
是的,在這種情況下,您可以洗掉異步。
uj5u.com熱心網友回復:
不,如果您不等待任何承諾,則不需要異步。
uj5u.com熱心網友回復:
是的,可能會有副作用。async使函式回傳一個承諾,這可能會在某處產生影響,例如,在洗掉 async 關鍵字之前和之后并不總是完全相同的行為
const fn = () => 10
const afn = async () => 10
afn() // a Promise
fn() // a number
afn().then(() => {}) // ok
fn().then(() => {}) // throws :(
但就你而言,一切都很好,這不會改變任何事情
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/341323.html
標籤:javascript 节点.js 表达 ecmascript-6 异步等待
上一篇:使用函式而不是多個ifelse
