مهدی
3 سال پیش توسط مهدی مطرح شد
0 پاسخ

event loop phases

سلام به همه
یک سوال برام پیش اومده در مورد فاز های 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
خوشحال میشم جوابی بدین :)


ثبت پرسش جدید

به همدیگه کمک کنیم

به مهدی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام