為什麼js在試圖用新的語法解決非同步問題

時間 2022-01-19 23:03:45

1樓:navegador

非同步問題底層不需要解決,因為各種解決方案前人早就玩的爛熟了,關鍵就是怎麼寫起來直觀符合直覺。

JS是屬於「為勞苦大眾服務」的平民語言,簡單易用易學始終是核心目標,所以要在寫法上下大功夫,用起來像同步寫法,所有人共同進步。

後端也需要啊,我之前做後端時候經常需要手工實現某種事件迴圈啊,介面是否直觀統一,是否像同步寫法也是要考慮的問題。

2樓:

這個題目可以重新描述下:《如何給後端的同事講懂 async 函式》。

簡單談下我的理解:

首先 async 函式乙個語法糖 ,它的底層實現是 Generator 函式和 Generator 函式自動執行器,Generator 函式的底層是 JS 引擎對於協程的實現,JS 引擎是單一執行緒的實現。

3樓:NaN

函式提供者怎麼解決,js是單執行緒的,並且在await/yield之前單次函式呼叫是無法中斷自身並在將來恢復的。

(至於為什麼是單執行緒。。。UI就應該是單執行緒)

yield提供了中斷執行並將continuation返回的能力,await提供了中斷執行並將continuation傳遞到被等待者的能力,這都是js以前根本做不到事情。

4樓:鹵代烴

kotlin 也能寫後端啊,不也是有語法糖處理非同步問題

5樓:崮生

新的語法是為了簡化使用promise

與非同步的關係僅在於promise經常用來控制非同步流程

6樓:d41d8c

什麼叫「實現同步效果」?整個執行緒不做其他事,專門等操作完成?

要知道 JS 是單執行緒的,要是等操作完成就不能處理使用者輸入——不管使用者是按滑鼠、按鍵盤、按觸控螢幕,網頁都沒法做出反應,時間長了就是俗稱的「卡死」。

(當然用 Worker 沒這個問題,不過 Worker 也有開銷。)非同步不是問題,它是「有些操作不能短時間完成,又不能一直等著它完成」的必然結果。await語法就是盡可能讓非同步寫起來和同步一樣好看。

為什麼人們會試圖用乙個假的故事來證明乙個道理的正確性?

喝綠茶憂宇宙 你看有多少粉絲因為乙個明星演了某個角色就深陷該明星不可自拔你就知道 故事假不假不要緊,道理正不正確才真硬。不要搞錯誰是主誰是次,誰是因誰是果。 人各有命但求自保 接近真理的方式很多你都不能接受。有些人要讀大量的書,有的人要抽乙個月的煙,有些人只需要乙個道理。上面一段話用的是雞湯體,但你...

霍華德在新賽季為什麼能打出煥然一新的表現?

mvpmade 在休賽期,湖人錯失了簽下第三位超級巨星的機會,之後又失去了今年的中鋒德馬庫斯 考辛斯,這讓人們對湖人賬面實力,能比其他球隊強很多的希望,變得渺茫了。但是湖人本賽季確打出了超乎預期的戰績。本賽季5 1的開局,不能只歸功於詹姆斯和安東尼戴維斯。因為德懷特 霍華德對比賽的貢獻也是非常大的,...

為什麼即使校方在解決學生被孤立的事情上做了很多努力,但學生被孤立的問題還是頻繁發生,始終難以解決?

失敗的小孩 即使校方再努力解決最多也就只能改變一時治標不治本改變的只是外部核心在於學生群體內部我個人來看被孤立無非是因為有各方面的原因不同於正常學生注意一點千萬不要為了融入某個群體開始討好某些人!這一點非常重要而被孤立的學生所要做的就是努力改變自己你若盛開蝴蝶自來我認為只有不卑不亢的做好自己別管別人...