Trong Nodej, hầu như không có hoạt động I/O chặn nào. Điều này có nghĩa rằng hầu như tất cả các mã nodejs IO liên quan đến nhiều callback. Này áp dụng cho việc đọc và viết đến/từ cơ sở dữ liệu, tập tin, quy trình, vv Một ví dụ điển hình của việc này là như sau:Quản lý nhiều đệ quy gọi lại trong Nodejs
var useFile = function(filename,callback){
posix.stat(filename).addCallback(function (stats) {
posix.open(filename, process.O_RDONLY, 0666).addCallback(function (fd) {
posix.read(fd, stats.size, 0).addCallback(function(contents){
callback(contents);
});
});
});
};
...
useFile("test.data",function(data){
// use data..
});
Tôi dự đoán viết code mà sẽ làm cho nhiều hoạt động IO, vì vậy tôi mong đợi viết nhiều cuộc gọi lại. Tôi khá thoải mái với việc sử dụng gọi lại, nhưng tôi lo lắng về tất cả các đệ quy. Tôi có nguy cơ chạy vào quá nhiều đệ quy và thổi qua một chồng ở đâu đó không? Nếu tôi làm cho hàng ngàn cá nhân ghi vào kho khóa-giá trị của tôi với hàng nghìn cuộc gọi lại, thì chương trình của tôi có bị sụp đổ không?
Tôi có hiểu lầm hoặc đánh giá thấp tác động không? Nếu không, có cách nào để giải quyết vấn đề này trong khi vẫn sử dụng kiểu mã hóa gọi lại của Nodejs không?
Chủ đề cũ nhưng hãy kiểm tra không đồng bộ: https://github.com/caolan/async – fider