سلام به همه
یک سوال برام پیش اومده در مورد فاز های 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
خوشحال میشم جوابی بدین :)
سلام خواستم به دوستان عزیز سایتی رو معرفی کنم که به صورت تصویری نحوه اجرای دستورات توی js و در مرورگر رو یاد میده البته توی github گفته که به زودی event loop مربوط به node.js رو هم اضافه میکنه خیلی جالبه فقط نمیدونم 100 درصد درست کار میکنه یا نه موفق باشید.
https://vault-developer.github.io/event-loop-explorer/
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟