Estoy tratando de cambiar/leer una variable de un objeto a través de funciones, que están dentro del mismo objeto, pero devuelve un error de que la función no existe.
Todavía estoy aprendiendo JS, así que realmente no sé cómo hacer que esto funcione.
Si ideclaro todas las variables y funciones como globales, funciona, pero quiero hacerlo como un objeto, por lo que es más fácil de trabajar.
Gracias :)
Error como que las variables/funciones no existían
La consola:
Command: Baixar = Object.create(Atualizador) Return: {} Command: Baixar.AtualizarMangas('nome=tamer') Return: undefined Error: atualizador.js:17 Uncaught (in promise) TypeError: this.AtualizarProximoManga is not a function at atualizador.js:17:9 (anônimo) @ atualizador.js:17 Promise.then (assíncrono) AtualizarMangas @ atualizador.js:14 (anônimo) @ VM5443:1 Command: Baixar.AtualizarProximoManga() Error: atualizador.js:26 Uncaught TypeError: Cannot read properties of undefined (reading 'Nome') at Object.AtualizarProximoManga (atualizador.js:26:85) at <anonymous>:1:8 AtualizarProximoManga @ atualizador.js:26 (anônimo) @ VM5451:1El código:
var Atualizador = { QtdMaxima: 5, Mangas: [], Quantidade: 0, Atual: -1, QtdAtualizando: 0, Concluido: false, AtualizarMangas: function (parametros = '') { Query = 'action=listarmangasdb'; if (parametros != '') { Query = Query+'&'+parametros; } Response = getExternalAPIResponse(Query); Response.then(function(result){ this.Mangas = result; this.Quantidade = this.Mangas.length; this.AtualizarProximoManga(); }) }, AtualizarProximoManga: function() { this.Atual += 1; this.QtdAtualizando += 1; getExternalAPIResponse('action=updatemangachapters&manga='+this.Mangas[this.Atual]['Nome']).then( function(result) { this.QtdAtualizando -= 1; this.IniciarProximo(); } ) this.IniciarProximo(); }, IniciarProximo: function() { if (!this.Concluido) { if (this.Atual < this.Quantidade) { if (this.QtdAtualizando < this.QtdMaxima) { this.AtualizarProximoManga(); } } else { this.Concluido = true; console.log('Mangas Atualizados'); } } }, }