Open bwbrbot opened 3 years ago
Bom dia! Iniciando os trabalhos de hoje com um probleminha...
Para a condição de guardar os dados estou utilizando o web sql, no cadastramento OK, entretanto para o retorno de dados e listagem encontro a seguinte questão.
`list(table: string): any{
const db: Database = window.openDatabase('people', '1.0', 'bwbr', 2 1024 1024);
let items: Atividade [] = [];
db.transaction(function (tx) {
tx.executeSql(`SELECT * FROM ${table}`,
[],
function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
items.push(results.rows.item(i));
}
}, null);
});
return items;
}`
No retorno de items
[ ] 0: {id: 1, titulo: "HTML/CSS", descricao: "Introdução ao curso.", idCard: "cardToDo"} 1: {id: 2, titulo: "HTML/CSS", descricao: "Introdução.", idCard: "cardToDo"} 2: {id: 3, titulo: "HTML/CSS", descricao: "Estrutura HTML", idCard: "cardToDo"}length: 3proto: Array(0)
Já tentei, mapear, já tentei forEach e for normal, entretando o tamanho da array me retorna '0'. Alguma sujestão?
Bom dia! Iniciando os trabalhos de hoje com um probleminha...
Para a condição de guardar os dados estou utilizando o web sql, no cadastramento OK, entretanto para o retorno de dados e listagem encontro a seguinte questão.
`list(table: string): any{ const db: Database = window.openDatabase('people', '1.0', 'bwbr', 2 1024 1024); let items: Atividade [] = [];
db.transaction(function (tx) { tx.executeSql(`SELECT * FROM ${table}`, [], function (tx, results) { var len = results.rows.length, i; for (i = 0; i < len; i++) { items.push(results.rows.item(i)); } }, null); }); return items; }`
No retorno de items
[ ] 0: {id: 1, titulo: "HTML/CSS", descricao: "Introdução ao curso.", idCard: "cardToDo"} 1: {id: 2, titulo: "HTML/CSS", descricao: "Introdução.", idCard: "cardToDo"} 2: {id: 3, titulo: "HTML/CSS", descricao: "Estrutura HTML", idCard: "cardToDo"}length: 3proto: Array(0)
Já tentei, mapear, já tentei forEach e for normal, entretando o tamanho da array me retorna '0'. Alguma sujestão?
RESOLVIDO (Optei por fazer em outro método que funcionou)
okay, pode descrever ou colar o link do commit ? Assim compartilhamos comnhecimento. A outra solução é fazer o método retornar uma Promise, que é algo que em algum momento vai ser computado.
list(table: string): Promise<Array<Atividade>> {
return new Promise((resolve, reject) => {
const db: Database = window.openDatabase('people', '1.0', 'bwbr', 2 * 1024 * 1024);
let items: Atividade [] = [];
db.transaction(function (tx) {
tx.executeSql(`SELECT * FROM ${table}`,
[],
function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
items.push(results.rows.item(i));
}
resolve(items);
}, null);
});
});
}
alguém também já passou por isso https://gist.github.com/konsumer/414aba5e0acacd2a0dd9
isso é necessário porque o localstore é um armazenamento de cache e não permite consultas