Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Ionic 2如何处理从服务中的数据库查询生成的阵列_Arrays_Sqlite_Ionic2 - Fatal编程技术网

Arrays Ionic 2如何处理从服务中的数据库查询生成的阵列

Arrays Ionic 2如何处理从服务中的数据库查询生成的阵列,arrays,sqlite,ionic2,Arrays,Sqlite,Ionic2,我试图通过同一服务中通过不同方法提供的数组进行循环。然而,当我出于某种原因尝试它时,用户是未定义的 发生错误的方法: public toString() { let users: any; users = this.getAllUsers(); for (var i = 0; i < users.length; i++) { var userData = users[i]; console.l

我试图通过同一服务中通过不同方法提供的数组进行循环。然而,当我出于某种原因尝试它时,用户是未定义的

发生错误的方法:

 public toString() {
        let users: any;
        users = this.getAllUsers();
        for (var i = 0; i < users.length; i++) {
            var userData = users[i];
            console.log(" User: " + userData.iduser + " " + userData.firstname + " " + userData.lastname);
            let meldingen: any;
            meldingen = this.getMeldingenFromUser(userData.iduser);
            for (var ii = 0; i < meldingen.length; i++) {
                var meldingData = meldingen[ii];
                console.log("- Melding: " + meldingData.idmelding + " " + meldingData.description);
            }
        }   
    }
}
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 12 : EXCEPTION: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
I/chromium: [INFO:CONSOLE(12)] "EXCEPTION: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined", source: file:///android_asset/www/build/main.js (12)
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 12 : ORIGINAL STACKTRACE:
I/chromium: [INFO:CONSOLE(12)] "ORIGINAL STACKTRACE:", source: file:///android_asset/www/build/main.js (12)
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 12 : Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
                                                                                               at s (file:///android_asset/www/build/polyfills.js:3:8568)
                                                                                               at file:///android_asset/www/build/polyfills.js:3:8318
                                                                                               at t.invoke (file:///android_asset/www/build/polyfills.js:3:13422)
                                                                                               at Object.inner.inner.fork.onInvoke (file:///android_asset/www/build/main.js:3:23082)
                                                                                               at t.invoke (file:///android_asset/www/build/polyfills.js:3:13373)
                                                                                               at e.run (file:///android_asset/www/build/polyfills.js:3:10809)
                                                                                               at file:///android_asset/www/build/polyfills.js:3:8911
                                                                                               at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:14051)
                                                                                               at Object.inner.inner.fork.onInvokeTask (file:///android_asset/www/build/main.js:3:22982)
                                                                                               at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:13987)
I/chromium: [INFO:CONSOLE(12)] "Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
                                                                                  at s (file:///android_asset/www/build/polyfills.js:3:8568)
                                                                                  at file:///android_asset/www/build/polyfills.js:3:8318
                                                                                  at t.invoke (file:///android_asset/www/build/polyfills.js:3:13422)
                                                                                  at Object.inner.inner.fork.onInvoke (file:///android_asset/www/build/main.js:3:23082)
                                                                                  at t.invoke (file:///android_asset/www/build/polyfills.js:3:13373)
                                                                                  at e.run (file:///android_asset/www/build/polyfills.js:3:10809)
                                                                                  at file:///android_asset/www/build/polyfills.js:3:8911
                                                                                  at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:14051)
                                                                                  at Object.inner.inner.fork.onInvokeTask (file:///android_asset/www/build/main.js:3:22982)
                                                                                  at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:13987)", source: file:///android_asset/www/build/main.js (12)
D/SystemWebChromeClient: file:///android_asset/www/build/polyfills.js: Line 3 : Unhandled Promise rejection:
I/chromium: [INFO:CONSOLE(3)] "Unhandled Promise rejection:", source: file:///android_asset/www/build/polyfills.js (3)
D/SystemWebChromeClient: file:///android_asset/www/build/polyfills.js: Line 3 : Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
I/chromium: [INFO:CONSOLE(3)] "Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined", source: file:///android_asset/www/build/polyfills.js (3)
01-02 08:35:51.890 1175-1175/? I/Keyboard.Facilitator: onFinishInput()
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 5 : returning all users: 
I/chromium: [INFO:CONSOLE(5)] "returning all users: ", source: file:///android_asset/www/build/main.js (5)
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 5 : [{"iduser":1,"firstname":"Peter","lastname":"Pan"},{"iduser":2,"firstname":"Jan","lastname":"Jaap"},{"iduser":3,"firstname":"Karel","lastname":"Kast"},{"iduser":4,"firstname":"Roos","lastname":"Rozijn"}]
01-02 08:35:51.985 24904-24904/com.ionicframework.cwistlev1105374 I/chromium: [INFO:CONSOLE(5)] "[{"iduser":1,"firstname":"Peter","lastname":"Pan"},{"iduser":2,"firstname":"Jan","lastname":"Jaap"},{"iduser":3,"firstname":"Karel","lastname":"Kast"},{"iduser":4,"firstname":"Roos","lastname":"Rozijn"}
提前谢谢你的帮助


Poerkie

这些函数正在返回
Promise
(应该返回
Promise
)。您只能访问
然后
回调中的值。了解有关
Promise
的更多信息。你需要用
链接所有承诺,然后

比如说

public getMeldingenFromUser(iduser) {
        return this.database.executeSql('SELECT * FROM melding, user WHERE melding.user_iduser = user.iduser AND user.iduser = ' + iduser + ';', []).then((resultSet) => {
            if (resultSet.rows.length > 0) {
                this.users = [];
                for (let i = 0; i < resultSet.rows.length; i++) {
                    this.users.push({
                        "idmelding": resultSet.rows.item(i).idmelding,
                        "meldingType": resultSet.rows.item(i).meldingType,
                        "meldingTitel": resultSet.rows.item(i).meldingTitle,
                        "meldingOmschrijving": resultSet.rows.item(i).meldingOmschrijving,
                        "guidRuimte": resultSet.rows.item(i).ruimte,
                        "iduser": resultSet.rows.item(i).user_idUser,
                    });
                }
                console.log('Returning all kasteelonderdelen from user: ' + iduser);
                console.log(JSON.stringify(this.users));
                return this.users;
            }
        })
    }

它给出以下错误:类型“void”上的属性“then”不存在我需要在方法中指定它需要返回数组吗?如果是这样,我应该指定哪种类型?您必须
返回
我在示例中提到的
承诺。
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 12 : EXCEPTION: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
I/chromium: [INFO:CONSOLE(12)] "EXCEPTION: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined", source: file:///android_asset/www/build/main.js (12)
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 12 : ORIGINAL STACKTRACE:
I/chromium: [INFO:CONSOLE(12)] "ORIGINAL STACKTRACE:", source: file:///android_asset/www/build/main.js (12)
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 12 : Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
                                                                                               at s (file:///android_asset/www/build/polyfills.js:3:8568)
                                                                                               at file:///android_asset/www/build/polyfills.js:3:8318
                                                                                               at t.invoke (file:///android_asset/www/build/polyfills.js:3:13422)
                                                                                               at Object.inner.inner.fork.onInvoke (file:///android_asset/www/build/main.js:3:23082)
                                                                                               at t.invoke (file:///android_asset/www/build/polyfills.js:3:13373)
                                                                                               at e.run (file:///android_asset/www/build/polyfills.js:3:10809)
                                                                                               at file:///android_asset/www/build/polyfills.js:3:8911
                                                                                               at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:14051)
                                                                                               at Object.inner.inner.fork.onInvokeTask (file:///android_asset/www/build/main.js:3:22982)
                                                                                               at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:13987)
I/chromium: [INFO:CONSOLE(12)] "Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
                                                                                  at s (file:///android_asset/www/build/polyfills.js:3:8568)
                                                                                  at file:///android_asset/www/build/polyfills.js:3:8318
                                                                                  at t.invoke (file:///android_asset/www/build/polyfills.js:3:13422)
                                                                                  at Object.inner.inner.fork.onInvoke (file:///android_asset/www/build/main.js:3:23082)
                                                                                  at t.invoke (file:///android_asset/www/build/polyfills.js:3:13373)
                                                                                  at e.run (file:///android_asset/www/build/polyfills.js:3:10809)
                                                                                  at file:///android_asset/www/build/polyfills.js:3:8911
                                                                                  at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:14051)
                                                                                  at Object.inner.inner.fork.onInvokeTask (file:///android_asset/www/build/main.js:3:22982)
                                                                                  at t.invokeTask (file:///android_asset/www/build/polyfills.js:3:13987)", source: file:///android_asset/www/build/main.js (12)
D/SystemWebChromeClient: file:///android_asset/www/build/polyfills.js: Line 3 : Unhandled Promise rejection:
I/chromium: [INFO:CONSOLE(3)] "Unhandled Promise rejection:", source: file:///android_asset/www/build/polyfills.js (3)
D/SystemWebChromeClient: file:///android_asset/www/build/polyfills.js: Line 3 : Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
I/chromium: [INFO:CONSOLE(3)] "Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined", source: file:///android_asset/www/build/polyfills.js (3)
01-02 08:35:51.890 1175-1175/? I/Keyboard.Facilitator: onFinishInput()
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 5 : returning all users: 
I/chromium: [INFO:CONSOLE(5)] "returning all users: ", source: file:///android_asset/www/build/main.js (5)
D/SystemWebChromeClient: file:///android_asset/www/build/main.js: Line 5 : [{"iduser":1,"firstname":"Peter","lastname":"Pan"},{"iduser":2,"firstname":"Jan","lastname":"Jaap"},{"iduser":3,"firstname":"Karel","lastname":"Kast"},{"iduser":4,"firstname":"Roos","lastname":"Rozijn"}]
01-02 08:35:51.985 24904-24904/com.ionicframework.cwistlev1105374 I/chromium: [INFO:CONSOLE(5)] "[{"iduser":1,"firstname":"Peter","lastname":"Pan"},{"iduser":2,"firstname":"Jan","lastname":"Jaap"},{"iduser":3,"firstname":"Karel","lastname":"Kast"},{"iduser":4,"firstname":"Roos","lastname":"Rozijn"}
public getMeldingenFromUser(iduser) {
        return this.database.executeSql('SELECT * FROM melding, user WHERE melding.user_iduser = user.iduser AND user.iduser = ' + iduser + ';', []).then((resultSet) => {
            if (resultSet.rows.length > 0) {
                this.users = [];
                for (let i = 0; i < resultSet.rows.length; i++) {
                    this.users.push({
                        "idmelding": resultSet.rows.item(i).idmelding,
                        "meldingType": resultSet.rows.item(i).meldingType,
                        "meldingTitel": resultSet.rows.item(i).meldingTitle,
                        "meldingOmschrijving": resultSet.rows.item(i).meldingOmschrijving,
                        "guidRuimte": resultSet.rows.item(i).ruimte,
                        "iduser": resultSet.rows.item(i).user_idUser,
                    });
                }
                console.log('Returning all kasteelonderdelen from user: ' + iduser);
                console.log(JSON.stringify(this.users));
                return this.users;
            }
        })
    }
this.getMeldingenFromUser(iduser).then((users)=>{
  console.log(users); // do what you want with users
})