Javascript 在使用Promise时,这两种方法之间有什么区别吗?
我只是修改了代码,使代码看起来更好。在使用Promise时,这两种方法之间有什么区别吗?我只是担心它是否会影响程序逻辑。非常感谢 更改前的代码:Javascript 在使用Promise时,这两种方法之间有什么区别吗?,javascript,promise,Javascript,Promise,我只是修改了代码,使代码看起来更好。在使用Promise时,这两种方法之间有什么区别吗?我只是担心它是否会影响程序逻辑。非常感谢 更改前的代码: function clearTableDemo(tableName) { return new Promise((resolve, reject) => { if (db) { db.executeSql('DELETE FROM '+ tableName, [],
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您更新的代码看起来是一样的。它没有回报一个承诺。试试看。您将看到错误。