javascript - 使用await时返回空?

标签 javascript node.js

使用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/

相关文章:

node.js - 用 Electron 而不是 Node 运行 Jest

node.js - session ID cookie 应该签名吗?

mysql - 如何在带有异步和池的 Node 中使用 Mysql2 为 MySQL 获取 insertId?

javascript - 无效的主机头 Heroku Node.js React 应用程序

node.js - 如何将数据包序列写入 Node.js net.Socket?

javascript - 动画(滑入)新面板以替换当前面板的内容?

javascript - 用js处理mailchimp的ajax查询

javascript - Reset() 后 Ractive 表达式不起作用

javascript - 如何递归调用异步函数?

javascript - 关于变更事件的 promise