Javascript 为什么rowsAffected不返回整数
我正在为iOS上的SQLite调用executeSql语句。我正在使用success[和error]回调方法,以便确认受影响的记录数 当它返回时,它正确定义了3个变量,但是当我尝试对rowsAffected执行“if”检查时,它不起作用,因为它认为它是一个对象 这是一个角度服务 这是我的密码:Javascript 为什么rowsAffected不返回整数,javascript,ios,angularjs,sqlite,Javascript,Ios,Angularjs,Sqlite,我正在为iOS上的SQLite调用executeSql语句。我正在使用success[和error]回调方法,以便确认受影响的记录数 当它返回时,它正确定义了3个变量,但是当我尝试对rowsAffected执行“if”检查时,它不起作用,因为它认为它是一个对象 这是一个角度服务 这是我的密码: $DBService.ExecuteQuery(script, params, function (insertId, rowsAffected, rows) {
$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]。这再次告诉我,它认为它是一个类,而不是类的属性(或者只是类中的一个变量)
有人能告诉我这里发生了什么吗?正如文件中明确指出的: executeSql()方法使用SQLResultSet对象作为参数调用其回调 因此,传递给回调的参数是一个具有三个指定属性的对象。 始终相信开发工具 因此,它应该更像:
$DBService.ExecuteQuery(script, params,
function (resultSetObj) {
...
if (resultSetObj.rowsAffected !== 1) {
...
顺便说一句,我作弊并修改了代码,改为if(rowsAffected.rowsAffected!==1),这是有效的,但它没有解释为什么。是什么让你认为它确实不是一个对象?只是根据文档说它返回3个参数,insertId、rowsAffected和rows。其中前两个是int,第三个是受影响行的数组。