Я попробовал одну простую функцию в узле js и передал данные в один файл в другой файл. Но ее бросание undefined. Как решить ее в узле js

Fun.js

function Get_Value()
{
    client.get('products', function(err,results) {
        return results

    })
    console.log(results)
}

Я пытался напечатать значение за пределами функции, но его печать не определена, как распечатать результат в функции вне стороны

0
smith hari 1 Май 2019 в 07:15

3 ответа

Лучший ответ
async function Get_Value() {
  let results = await new Promise(function(resolve) {
    client.get("products", function(err, results) {
      resolve(results);
    });
  });

  console.log(results);
}

0
SIMDD 1 Май 2019 в 05:24

Это очень легко, используя async/await функции, предоставляемые ES7.

async function  Get_Value()
{
    const results = await new Promise((resolve, reject) => {
                        client.get('products', function(err,results) {
                             resolve(results);
                        })
                    });
     console.log(results);  
 }
0
narayansharma91 1 Май 2019 в 05:24

Определите ваш Get_Value, чтобы принять функцию обратного вызова. Затем вы передаете обратный вызов, когда вызываете Get_Value:

function Get_Value(callback) {
  client.get('products', function(err,results) {
    if (err) return callback(err)
    callback(null, results);
  })
}

function mycallback(err, data) {
  if (err) {
    // handle error
    console.error(err)
  } else {
    console.log(data);
  }
}
Get_Value(mycallback)
0
1565986223 1 Май 2019 в 05:27