使用await时什么都不返回的正确方法是什么?
用法:
exports.run = async => {
try {
await update(data);
} catch(err) {
console.error(err);
}
};
功能:
function update() {
if (data) {
return updateRecord(data).promise();
}
// does not need to be rejected.
return; //Is this correct?
return Promise.resolve(); //Is this correct?
}
最佳答案
最简单的方法是不使用return
语句,以便返回的 promise 解析为 undefined
在函数末尾:
async function update() {
if (data)
return updateRecord(data).promise();
}
但是你也可以明确地拼写出来,当你返回 Promise.resolve(…)
时那么你不需要将该函数标记为 async
:
async function update() {
if (data)
return updateRecord(data).promise();
return;
}
async function update() {
if (data)
return updateRecord(data).promise();
return undefined;
}
function update() {
if (data)
return updateRecord(data).promise();
return Promise.resolve();
}
function update() {
if (data)
return updateRecord(data).promise();
return Promise.resolve(undefined);
}
async function update() {
return data ? updateRecord(data).promise() : undefined;
}
function update() {
return data ? updateRecord(data).promise() : Promise.resolve();
}
function update() {
return data ? updateRecord(data).promise() : Promise.resolve(undefined);
}
他们都达到了同样的目的。使用最简单、最易读的。
关于javascript - 使用await时返回空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56974671/