Node.js - Geri Çağırma Kavramı

Geri Arama nedir?

Geri arama, bir işlev için eşzamansız bir eşdeğerdir. Belirli bir görev tamamlandığında bir geri arama işlevi çağrılır. Node, geri aramalardan yoğun şekilde yararlanır. Node'un tüm API'leri, geri çağırmaları destekleyecek şekilde yazılmıştır.

Örneğin, bir dosyayı okumaya yönelik bir işlev, dosyayı okumaya başlayabilir ve kontrolü, bir sonraki komutun yürütülebilmesi için derhal yürütme ortamına geri döndürebilir. Dosya G / Ç işlemi tamamlandığında, geri arama işlevini, dosyanın içeriğini parametre olarak iletirken geri arama işlevini çağıracaktır. Yani Dosya G / Ç için herhangi bir engelleme veya bekleme yoktur. Bu, herhangi bir işlevin sonuç döndürmesini beklemeden çok sayıda isteği işleyebildiğinden, Node.js'yi oldukça ölçeklenebilir hale getirir.

Engelleme Kodu Örneği

Adlı bir metin dosyası oluşturun input.txt aşağıdaki içerikle -

Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!

Adlı bir js dosyası oluşturun main.js aşağıdaki kod ile -

var fs = require("fs");
var data = fs.readFileSync('input.txt');

console.log(data.toString());
console.log("Program Ended");

Şimdi sonucu görmek için main.js'yi çalıştırın -

$ node main.js

Çıkışı doğrulayın.

Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
Program Ended

Engellemeyen Kod Örneği

Aşağıdaki içeriğe sahip input.txt adlı bir metin dosyası oluşturun.

Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!

Aşağıdaki koda sahip olmak için main.js'yi güncelleyin -

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {
   if (err) return console.error(err);
   console.log(data.toString());
});

console.log("Program Ended");

Şimdi sonucu görmek için main.js'yi çalıştırın -

$ node main.js

Çıkışı doğrulayın.

Program Ended
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!

Bu iki örnek, çağrıları engelleme ve engellememe kavramını açıklamaktadır.

  • İlk örnek, programın dosyayı okuyana kadar bloke ettiğini ve sonra sadece programı sonlandırmaya devam ettiğini gösterir.

  • İkinci örnek, programın dosya okumayı beklemediğini ve "Program Bitti" yazdırmaya devam ettiğini ve aynı zamanda programın engellemeden dosyayı okumaya devam ettiğini gösterir.

Bu nedenle, bir engelleme programı çok fazla sırayla yürütülür. Programlama bakış açısından, mantığı uygulamak daha kolaydır, ancak engellemeyen programlar sırayla çalıştırılmaz. Bir programın işlenecek herhangi bir veriyi kullanması gerektiğinde, sıralı yürütmesi için aynı blok içinde tutulmalıdır.