Confused setTimout behaviour in NodeJS
Đang mở
Chưa có ai nhận issue này.
timers
- Ngôn ngữ chính
- JavaScript
- Star
- 122k
- Fork
- 37.4k
- Merge trung bình
- 4 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 272
Mô tả
Version
14, 18
Platform
22.2.0 Darwin Kernel arm64
Subsystem
No response
What steps will reproduce the bug?
setTimeout(() => {
console.log('calling 1st timeout')
}, 1)
setTimeout(() => {
console.log('calling 2rd timeout')
}, 0)
// in nodejs
// calling 1st timeout
// calling 2rd timeout
// however, in chrome browser
// calling 2rd timeout
// calling 1st timeout
How often does it reproduce? Is there a required condition?
No response
What is the expected behavior?
Would expect the second time to be called first
What do you see instead?
The first time out is called then the second timeout in NodeJS
Additional information
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Trước tiên, hãy chạy bản tái hiện setTimeout được cung cấp trên Node.js 14 và 18, sau đó so sánh với kết quả trên trình duyệt. Đọc tài liệu về setTimeout và event loop của Node.js để xác định liệu thứ tự có được đặc tả hay không. Công việc được xem là hoàn tất khi đã xác lập thứ tự dự kiến và xác định liệu hành vi của Node.js có cần thay đổi tài liệu hoặc triển khai hay không.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, node.js
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100