84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
1、如題,問一個js機制問題,是否都是等主執行緒執行完畢以後,才執行非同步操作。2、JavaScript 運作機制詳解:再談Event Loop 大部分人都讀過這篇文章,阮老濕說的是:只有主執行緒執行完畢以後,才會去讀取任務佇列。3、今天聽說了一個上下文的說法,大概意思是說某個非同步操作只等和它是同一個上下文的主執行緒執行完畢。而不等其他的上下文。今天找了好久,也沒找到類似的文章,請人回答! !
你把很多東西感覺搞混了,還有阮一峰的文章。 。 。批判是閱讀。 。他那文章。 。還有很多概念錯誤的。 。以下是一篇是樸靈的批註:可以參考看一看
樸靈批註版本
nodeJS 官方文件 evenloop process.nextTick timers 關係
我的理解是node 主執行緒跑執行緒程式碼,只有檔案I/O,網路I/O,timer才會是非同步事件,才會進入非同步佇列,平常你寫的程式碼都是同步的,例如你有一下一段程序
setTimeout(function(){ console.log('test'); },10);//本来应该是10ms后输出test for(var i=0;i<10000000;i++){ //但是这个空的for循环执行了50ms } //for占住了主线程,倒地timer 事件已经到达触发条件,但是主线程被占用 //不能去请求完成的事件队列。 //所以test 会在50ms后输出
至於那個上下文的概念,我理解的並不透徹 不知道應該算在那一塊裡面,希望大牛給建議。 。歡迎拍磚或踩,請告知錯誤的地方。 。嘿
你把很多東西感覺搞混了,還有阮一峰的文章。 。 。批判是閱讀。 。他那文章。 。還有很多概念錯誤的。 。
以下是一篇是樸靈的批註:可以參考看一看
樸靈批註版本
nodeJS 官方文件 evenloop process.nextTick timers 關係
我的理解是node 主執行緒跑執行緒程式碼,只有檔案I/O,網路I/O,timer才會是非同步事件,才會進入非同步佇列,平常你寫的程式碼都是同步的,
例如你有一下一段程序
至於那個上下文的概念,我理解的並不透徹 不知道應該算在那一塊裡面,希望大牛給建議。 。歡迎拍磚或踩,請告知錯誤的地方。 。嘿