gpt4 book ai didi

Javascript Promise 未定义

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:59 26 4
gpt4 key购买 nike

我是 Javascript 和 AngularJS 的新手,我正在尝试解决这个问题。我制作了一个执行数据库查询并返回 promise 的 Angular 服务。

        executeStatement = function(db, sql, values, onsuccess, onerror) {
if (!!db.executeSql) {
return db.executeSql(sql, values || [], onsuccess, onerror);
} else {
return db.transaction(function(tx) {
return tx.executeSql(sql, values, function(ignored, rs) {
return onsuccess(rs);
}, function(ignored, error) {
return onerror(error);
});
});
}
};

this.executeStatement = function(sql, values) {
$ionicPlatform.ready( function() {
return new Promise(function(resolve, reject) {
return executeStatement(myDB, sql, values, resolve, reject);
});
} );
}

然后如果我在 Angular 服务模块中像这样调用executeStatement。

    this.extract = function(callback) {
_DB.executeStatement('SELECT * FROM FRIDGE', []).then(callback);}

函数运行完成后不应该返回一个 promise 吗?我变得不确定:(一些帮助将不胜感激!

最佳答案

this.executeStatement()函数需要返回$ionicPlatform.ready()的结果:

this.executeStatement = function(sql, values) {
return $ionicPlatform.ready( function() {
return new Promise(function(resolve, reject) {
return executeStatement(myDB, sql, values, resolve, reject);
});
} );
}

现在您可以在回调中访问从 executeStatement 返回的任何内容,您可以将其作为参数传递给 .then() 函数:

_DB.executeStatement('SELECT * FROM FRIDGE', []).then(callback);

关于Javascript Promise 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43311119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com