Sequência de execução - javaScript

JavaScript

10/02/2021

Pessoal, bom dia!
Estou com algumas dificuldades na execução do Javascript.
Ele não segue as etapas que eu gostaria na execução.
Traz do banco de dados certinho os dados, mas ao executar as etapas na sequencia que eu gostaria: 1-2-3 ele não executa. Ele executa a sequencia 1-3-2.
Quando chamado o Storage.get() ele retorna antes de trazer os dados do banco.
Poderia me ajudar?
const Conection = {
makeRequest (method, url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = function () {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function () {
reject({
status: this.status,
statusText: xhr.statusText
});
};
xhr.send();
});
}
}

const Storage = {
get() {
/*
ETAPA 1
*/
let transactions = JSON.parse(localStorage.getItem('dev.finances:transactions'));
console.log('1) ' + typeof transactions);

if (!transactions) {

/*
ETAPA 2
*/
transactions = Conection.makeRequest('GET', 'ajax/data-transactions.php')
.then(function (dataTransactions) {
console.log('2) ' + typeof dataTransactions);

return JSON.parse(dataTransactions);
})
.catch(function (err) {
console.error('Erro ao conectar com o banco de dados, procure o Administrador do Sistema!', err.statusText);
alert('Erro ao conectar com o banco de dados, procure o Administrador do Sistema!');
})
}
/*
ETAPA 3
*/
console.log('3) ' + typeof transactions);
return transactions;
},
set(transactions){
localStorage.setItem('dev.finances:transactions', JSON.stringify(transactions));
}
}
Robson Júnior

Robson Júnior

Curtidas 0
POSTAR