1. 程式人生 > 其它 >使用 ingress 建立對外服務

使用 ingress 建立對外服務

單執行緒就意味著所有任務需要排隊,如果因為任務cpu計算量大還好,但是I/O操作cpu是閒著的,所以js就設計成了一門非同步的語言,不會做無畏的等待,任務可以分成兩種,一種是同步任務,另一種是非同步任務。

(1)所有同步任務都在主執行緒上執行,形成一個執行棧(execution context(stack))

  (2)  主執行緒之外,還存在一個“任務佇列”,只要非同步任務有了執行結果,就在“任務佇列”之中放置一個事件

(3)一旦“執行棧”中的所有同步任務執行完畢,系統就會讀取“任務對列”,看看裡面有哪些事件,哪些對應的非同步任務

(4)主執行緒不斷重複上面的第三步

 //    setTimeout(()=>{
            //        console.log("setTimeout");
            //    },0)
             
            //     Promise.resolve().then(()=>{
            //         console.log("promise");
            //         Promise.resolve().then(()=>{
            //              console.log("promise2")
            //         })
            //     })

            //     console.log("main")



         執行結果 main     promise    promise2  setTimeout
                               

  

 setTimeout(()=>{
                Promise.resolve().then(()=>{
                    console.log("promise")
                })
            },0)

            Promise.resolve().then(()=>{
                setTimeout(()=>{
                    console.log("setTimeout")
                },0)
            })

            console.log(
"main") 執行 結果 main promise setTimeout

 

                                 I/0

 主線        巨集任務   微任務    巨集任務  微任務  ....

 

事件迴圈:每執行完一輪巨集任務和微任務就叫做一環事件