Một chức năng dừng thực thi tập lệnh cho đến khi nó kết thúc.
Ví dụ, nếu tôi có một hàm trong ngôn ngữ của tôi đã được sử dụng để viết thư cho một tập tin, như vậy:
fwrite(file, "Contents");
print("Wrote to file!");
Tuyên bố print
sẽ chỉ được thực hiện khi các tập tin đã được ghi vào đĩa . Toàn bộ chương trình là bị tạm dừng về hướng dẫn này. Đây không phải là đáng chú ý cho nhỏ đủ viết, nhưng hãy tưởng tượng tôi đã có một blob khổng lồ để ghi vào tập tin, một trong những diễn nhiều giây:
fwrite(file, blob);
print("Wrote to file!");
Tuyên bố print
sẽ chỉ được thực hiện sau một vài giây của thành văn bản, và toàn bộ chương trình sẽ bị dừng lại trong thời gian đó. Trong Node.js, công cụ này được thực hiện không đồng bộ, sử dụng sự kiện và gọi lại. Ví dụ của chúng tôi sẽ trở thành:
fwrite(file, blob, function() {
print("Wrote to file!");
});
print("Do other stuff");
Trường hợp tham số thứ ba là hàm được gọi khi tệp đã được ghi. Câu lệnh print
được đặt sau khi chức năng ghi sẽ được gọi ngay sau đó, cho dù tệp đã được ghi chưa. Vì vậy, nếu chúng ta viết một blob đủ lớn, sản lượng có thể trông như thế này:
Do other stuff
Wrote to file!
Điều này làm cho applictions rất nhanh vì bạn không chờ đợi vào một thông điệp khách hàng, một ghi tập tin hoặc khác. Bạn có thể tiếp tục xử lý dữ liệu theo cách song song. Đây được coi là một trong những thế mạnh của Node.js.
Nguồn
2011-09-13 19:14:42