All Articles

Async with Sync - 有什麼不同?

轉自

非同步(Asynchronous)與同步(Synchronous)的差異

  • Async與Sync的意思,真正了解差異在哪裡。
  1. 解釋一下為何一直搞不清楚Async與Sync
    現在工作的語言是Node.js,Node.js的特異就是以Async的方式處理需求。
  2. Javascript的預設是Sync的,而Node.js則是非Async。
    1. Async 是一種圍毆的概念,大家一起打一個人。
    2. Sync 是A打人 → B打 → C打 → D打
    3. 「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)
    總結一下自己的總共犯了哪些錯誤,並加以更正!
  1. Node.js的處理方式是Sync(x)
  2. Node.js的處理方式是Async(0)
  3. Async是一次處理很多需求(x)
  4. Async是接收到需求,不用一直等到需求完成再執行其他需求(0)
  5. Async與Sync的差別在於:發送需求的人是否需要等到需求完成才可以執行其他事情。
  • 以上就是Async與Sync差異的介紹,希望這篇文章可以幫到所有曾經和我一樣搞不清楚Async與Sync的人!
Published 20 Aug 2017