Boa Tarde !
Pessoal,
Vocês sabem me informar se é possível fazer consultas no banco de forma Síncrona?
Eu preciso recuperar algumas informações do banco e apenas depois continuar a execução do código.
Ex:
var dados = buscarRegistro(); // Preciso que enquanto o resultado da função esteja pronto, o
//restante do código não seja executado
console.log(dados);
Hoje da forma que estou visualizando o código, a saída no console acontece primeiro do que a execução da função.
É possível ter alguma coisa nesse sentido?
Olá, @saydmatias
Você está precisando fazer uma consulta de forma síncrona?
O javascript é de natureza assíncronas, pois se o script travasse a execução para operação de IO o browser ia ficar travado e usuário não iria conseguir usar outras funções do site. Dessa forma as consultas ao banco de dados precisam ser assíncronas pois dependem diretamente da conexão com a internet. Para ter uma sintaxe que lembre programação assíncrona você pode utilizar async/await. Veja o exemplo:
async function buscarRegistro() { //retorne qualquer consulta wixData return wixData.query('colecao').find() } export async function button1_click(event) { var dados = await buscarRegistro(); console.log(dados); // essa linha só vai ser executada com a consulta estiver pronta //Você pode usar try/catch para tratar os erros }
Mais sobre async/aiwat: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/funcoes_assincronas
Espero ter ajudado!