Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

89
Visualizações
Database count is returning Undefined

I need small help in a small code. The function is returning [object Promise] and I want to return the count. When I use console.log within the function it works perfectly fine and shows the appropriate result, however when returning the code and use console.log outside the function it is saying [object Promise].

async function queryDB(num) 
{
    await wixData.query("numDB")
    .eq("nums", num)
    .find()
    .then( (results) => 
    {
        var  count = results.items.length
        console.log("count in function: " + count)
        return count
    })
    .catch( (err) => 
    {
        let errorMsg = err;
    } );
}

Then I call it with:

$w.onReady(function () 
{
    var num1 = queryDB("1");
    console.log("count out function: " + num1)    
});

And I am getting the following output:

count out function: [object Promise]
count in function: 3

TIA

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

A few issues here..

  1. Your queryDB doesn't return anything, apart from an undefined Promise
  2. Your mixing thenables with async / await, do one or the other.
  3. Your catch is doing nothing, generally speaking avoid catch, unless your trapping something specific, handle errors further up, not in util functions.

Since your using async/await..

async function queryDB(num) 
{
    const results = await wixData.query("numDB")
      .eq("nums", num)
      .find();
    var count = results.items.length
    console.log("count in function: " + count)
    return count;
}

$w.onReady(async function () 
{
    var num1 = await queryDB("1");
    console.log("count out function: " + num1)    
});

For completeness, if you were not using async / await.

function queryDB(num) 
{
    return wixData.query("numDB") //don'f forget to return
      .eq("nums", num)
      .find()
      .then(results => {
         var count = results.items.length
         console.log("count in function: " + count)
         return count;
      });
}

$w.onReady(function () 
{
    queryDB("1").then(num1 => {
      console.log("count out function: " + num1)    
    });
});
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda