Javascript 为什么rowsAffected不返回整数

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) {

我正在为iOS上的SQLite调用executeSql语句。我正在使用success[和error]回调方法,以便确认受影响的记录数

当它返回时,它正确定义了3个变量,但是当我尝试对rowsAffected执行“if”检查时,它不起作用,因为它认为它是一个对象

这是一个角度服务

这是我的密码:

    $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,第三个是受影响行的数组。