【发布时间】:2014-06-05 16:12:19
【问题描述】:
我在 iOS 上为 SQLite 调用 executeSql 语句。我正在使用成功 [和错误] 回调方法,以便我可以确认受影响的记录数。
当它返回时,它已经正确定义了 3 个变量,但是当我尝试对 rowsAffected 进行“if”检查时,它不起作用,因为它认为它是一个对象。
这是在 Angular 服务中...
这是我的代码:
$DBService.ExecuteQuery(script, params,
function (insertId, rowsAffected, rows) {
window.logger.logIt("rowsAffected: " + rowsAffected.toString());
if (rowsAffected !== 1) {
deferred.reject("Failed to update record. Query did not return 1 record affected.");
} else {
deferred.resolve();
}
},
function (error) {
deferred.reject("Failed to update record. " + error.message);
}
);
当我中断调试器并将鼠标悬停在 rowsAffected 变量上时,它会将其显示为类的属性,其中显示:insertId、rowsAffected = 1 和 rows。这些是成功回调中的 3 个参数。为什么当我将鼠标悬停在 rowsAffected 上时它会显示所有 3 个?此外,当我写入控制台窗口 (window.logger.logIt()) 时,它会将其显示为 [object object]。同样,这告诉我它认为它是一个类,而不是类的属性(或者只是我类中的一个变量)。
谁能告诉我这里发生了什么?
【问题讨论】:
-
顺便说一句,我作弊并更改了我的代码以说 if (rowsAffected.rowsAffected !== 1) 并且有效,但它没有解释为什么。
-
是什么让你认为它确实不是一个对象?
-
只是通过文档说它返回 3 个参数,insertId、rowsAffected 和 rows。前两个是整数,第三个是受影响的行数组。 w3.org/TR/webdatabase
标签: javascript ios angularjs sqlite