Javascript 在使用Promise时,这两种方法之间有什么区别吗?

Javascript 在使用Promise时,这两种方法之间有什么区别吗?,javascript,promise,Javascript,Promise,我只是修改了代码,使代码看起来更好。在使用Promise时,这两种方法之间有什么区别吗?我只是担心它是否会影响程序逻辑。非常感谢 更改前的代码: function clearTableDemo(tableName) { return new Promise((resolve, reject) => { if (db) { db.executeSql('DELETE FROM '+ tableName, [],

我只是修改了代码,使代码看起来更好。在使用Promise时,这两种方法之间有什么区别吗?我只是担心它是否会影响程序逻辑。非常感谢

更改前的代码:

function clearTableDemo(tableName) {
    return new Promise((resolve, reject) => {
        if (db) {
            db.executeSql('DELETE FROM '+ tableName, [],
                () => { resolve () },
                err => { reject() }
            );
        } else {
            reject('db no open');
        }
    });
}
更改后的代码:(已更新)


这两个函数完全不同,第二个示例根本不返回承诺

例如,可以通过以下代码简化该函数:

function clearTableDemo(tableName) {
    if (!db) {
        return Promise.reject('db no open');
    }
    return new Promise((resolve, reject) => {
        db.executeSql('DELETE FROM '+ tableName, [], resolve, reject);
    });
}

这两个函数完全不同,第二个示例根本不返回承诺

例如,可以通过以下代码简化该函数:

function clearTableDemo(tableName) {
    if (!db) {
        return Promise.reject('db no open');
    }
    return new Promise((resolve, reject) => {
        db.executeSql('DELETE FROM '+ tableName, [], resolve, reject);
    });
}

有一个巨大的区别:第二个示例没有返回承诺。当存在
db
时,您是否确实尝试过使用第二个示例?:)很抱歉,演示代码有误。如果我用下面的代码重写代码呢?db.executeSql('DELETE FROM'+tableName,[],()=>{return Promise.resolve()},err=>{return Promise.reject(err)})@DickyChan您更新的代码看起来是一样的。它没有回报一个承诺。试试看。您将看到错误。这是一个巨大的区别:第二个示例没有返回承诺。当存在
db
?:)时,您是否确实尝试过使用第二个示例很抱歉,演示代码有误。如果我用下面的代码重写代码呢?db.executeSql('DELETE FROM'+tableName,[],()=>{return Promise.resolve()},err=>{return Promise.reject(err)})@DickyChan您更新的代码看起来是一样的。它没有回报一个承诺。试试看。您将看到错误。