Разница между функцией обратного вызова и нормальной функцией с использованием узла JS - PullRequest
0 голосов
/ 07 мая 2019

Я реализую функцию обратного вызова в узле JS.но я сомневаюсь в функции обратного вызова. Я попробовал две функции в узле js одну функцию обратного вызова и другую нормальную функцию. Как функцию, которую я пытался выполнить, учитывая тот же результат. Никто не объясняет мой код.

callback_function.js

const MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectID

// Connection URL
var db =" "

MongoClient.connect('mongodb://localhost:27017', (err, client) => {
  // Client returned
  db = client.db('olc_prod_db');

  gener(function(id)
{
    db.collection('Ecommerce').find({ _id: new ObjectId(id) }, function(err,result)
    {
        console.log("hello")
    })
})


function gener(callback)
{
    db.collection('Ecommerce').find({}).toArray(function(err,result)
    {
        console.log("hai")
    })
    callback("5ccac2fd247af0218cfca5dd")
}
});

normal_function.js

const MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectID

// Connection URL
var db =" "

MongoClient.connect('mongodb://localhost:27017', (err, client) => {
  // Client returned
  db = client.db('olc_prod_db');

  gener()


  function data()
  {
      console.log("hello")
  }


function gener()
{
    db.collection('Ecommerce').find({}).toArray(function(err,result)
    {
        console.log("hai")
    })
    data()
}
});

это показывает как привет, так и привет

1 Ответ

1 голос
/ 07 мая 2019

Если вы вызываете одну и ту же функцию, результат тот же.

Это неправильный обратный вызов.

Обратный вызов является асинхронным эквивалентом для функции. Обратный звонок Функция вызывается при завершении заданной задачи. Узел делает тяжелым использование обратных вызовов. Все API Node написаны таким образом, что они поддерживают обратные вызовы.

В вашем случае вы выполняете вещи синхронно. Вы только вызываете функцию, используя ее указатель в параметре другой функции.

Example1

function gener(callback)
{  
    console.log("hai")
    callback("5ccac2fd247af0218cfca5dd")
}

gener(function(id)
{   
        console.log("hello")
})

Example2

gener()

function data()
{
    console.log("hello")
}

function gener()
{
    console.log("hai")
    data()
}
...