Async with Sync - 有什麼不同?
非同步(Asynchronous)與同步(Synchronous)的差異
- Async與Sync的意思,真正了解差異在哪裡。
- 解釋一下為何一直搞不清楚Async與Sync
現在工作的語言是Node.js,Node.js的特異就是以Async的方式處理需求。 - Javascript的預設是Sync的,而Node.js則是非Async。
- Async 是一種圍毆的概念,大家一起打一個人。
- Sync 是A打人 → B打 → C打 → D打
- 「Async的說法之所以沒有錯誤是因為 Async 的特性,所以可以做到圍毆的效果,但不是這並非Async 的本質。」
- 以下用對話來顯示
我:特性是指同時做很多事嗎?
W:async = 發出要求~收到結果 這中間我可以去做其他事情
W:你填好單子送到櫃檯,然後……
W:他辦完再叫你的號碼→Async
W:要站在櫃檯等他辦完→Sync
W:因為不用站在櫃檯等,你就可以跑很多櫃檯、送很多張單子出去,
就有上面說的「圍毆」的效果。
W:所以 sync/async 是在說單一櫃檯辦事員的運作模式。
W:然後……
W:在對方是 async 的前提下,有些事情還是要依序辦理,
例如:先去開好戶頭,才把戶頭交給公司行政。
W:那你腦內就要有個清單:
W:等薪資戶開好,然後再去跟公司行政帳號。
W:這個然後就是 promise 的 then
W:再歸納一次:
W:- sync/async 是指單一個要求or操作的運作方式。
(你需不需要卡住等他做完)
W:- promise 則是用來描述多個操作之間關係的方法。
(可以應付 async,但也可以是 sync)
總結一下自己的總共犯了哪些錯誤,並加以更正!
- Node.js的處理方式是Sync(x)
- Node.js的處理方式是Async(0)
- Async是一次處理很多需求(x)
- Async是接收到需求,不用一直等到需求完成再執行其他需求(0)
- Async與Sync的差別在於:發送需求的人是否需要等到需求完成才可以執行其他事情。
- 以上就是Async與Sync差異的介紹,希望這篇文章可以幫到所有曾經和我一樣搞不清楚Async與Sync的人!
Published 20 Aug 2017