使用Promise时这两种方法有什么区别吗?

Dic*_*han 0 javascript promise

我刚刚更改了代码以使代码看起来更好.使用Promise时这两种方法有什么区别吗?我只是害怕它是否会影响程序逻辑.非常感谢.

代码更改前:

function clearTableDemo(tableName) {
    return new Promise((resolve, reject) => {
        if (db) {
            db.executeSql('DELETE FROM '+ tableName, [],
                () => { resolve () },
                err => { reject() }
            );
        } else {
            reject('db no open');
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

更改后的代码:( 更新)

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

str*_*str 6

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

例如,您可以做的简化功能的代码如下:

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