سلام به همه
یک سوال برام پیش اومده در مورد فاز های event loop . خوب 6 فاز داریم
timers
pending callbacks
idle, prepare
poll
check
close callbacks
الان من اومدم یک همچین کدی رو نوشتم
const fs = require('fs');
const http = require('http');
console.log("start\n");
http.createServer().listen(8080, () => {
console.log('this is connection\n');
});
setTimeout(() => { console.log("timeOut finished\n"); }, 0);
fs.readFile("name.txt", 'utf-8', (err, data) => {
console.log(`${data}\n`);
});
setImmediate(() => {
console.log('executing setImmediate callback\n');
setTimeout(() => {
console.log("second time out finished \n");
}, 0);
});
console.log("end\n");
الان برای من توضیحی بدین که چرا وقتی یک فایلی رو میخونم این در آخر برای من چاپ میشه دیتاش . و وقتی یک سروری رو بالا میارم بعد
end , start ران میشه ؟
ترتیب ران شدنش هم اینجوری هست :
start
end
this is connection
timeOut finished
executing setImmediate callback
second time out finished
this data returend from fs
خوب اون متد های settimeout اینا میرن تو فاز timer و هر فقط stack خالی شد یکی یکی اجرا میشن .
و اینکه کدام proccess میره توی کدام phase
خوشحال میشم جوابی بدین :)
به مهدی کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟