Tag: Async

  • JS-同步(Sync)與非同步(Async)-SetTimeout-SetInterval

    JS-執行緒與同步(Sync)非同步(Async)概念 這一篇有概述了同步(Sync)與非同步(Async)。

    所以我們得把以前學得執行堆疊概念拿出來套用一下

    接下來要繼續說明一下, 同步(Sync)與非同步(Async)的應用

    [2022_11_02 新增SetInterval ]

    參考資料: 六角學院

    參考連結: 
    談談JavaScript SetTimeout/SetInterval

    給予小肝肝工程師支持吧'v': ETH/ERC20

    JavaScript

    SetTimeout() 用法

    在講解執行順序之前, 我們會先說明事件佇列

    在你執行到SetTimeout()所在的Function, 內部的陳述式會儲存到事件佇列

    先記起來!

    SetTimeout()方法1

    1. SetTimeout() 的delaytime單位(ms)
    2. SetTimeout() 要整個程式順序跑完以後才會執行
    3. SetTimeout() 只執行一次就會結束!
    4. SetTimeout( 非字串,delaytime ) 用這種方式, 主控台的執行效率會比較好

    SetTimeout()方法2

    不同在於

    SetTimeout( 字串,delaytime) 裡面陳述, 我們用純字串

    這種方式在主控台的執行效率較不好


    執行順序

    執行結果

    SetInterval 用法

    setInterval() 固定延遲了某段時間之後,才去執行對應的程式碼,然後「不斷循環」

    SetInterval 結構

  • JS-執行緒與同步(Sync)與非同步(Async)概念

    在Javascript世界裡面, 它仍然是依照同步的概念去執行程式

    意思就是Javascript單執行續(Single-Thread) 的語言

    請給予肝肝的小工程師支持吧 'v': ETH/ERC20

    甚麼是同步? 甚麼是非同步?

    同步

    同步⌟這一詞, 懵懂的我剛開始以為是Multi-thread, 或者因為中文翻譯而將意思誤解為同時進行

    *Multi-thread 之後我會在寫一篇來說說

    簡單來說就是把事情編排好順序, 藉由一些方式讓它按照你編排的順序去執行

    每次只做一件事情, 這才叫做 ⌜同步⌟。

    ⌜非同步

    ⌜非同步⌟的字面意思就很好了解

    指派任務的可以多個母線開頭, 做完這件事情, 你還能再去做其他的被指派任務

    同步(Sync)

    每天當你起床之後, 你腦袋一定會想等下要先刷牙、煮咖啡、吃早餐。

    但是你只能烤完吐司, 再來煮咖啡, 咖啡煮完再來刷你的牙。

    這樣不是很麻煩嘛! 還要屈就之前的任務?

    同步

    非同步(Async)

    但是我不想要做完A再來做B再來做C… 很浪費時間!

    所以我們利用下圖流程來解釋非同步

    1. 要刷牙之前, 我們將吐司烤爐啟動
    2. 再將咖啡機啟動
    3. 然後自己跑去刷牙
    4. 刷牙的同時, 機器仍然運作中
    5. 刷完牙, 吐司烤好,咖啡也煮好了!
    非同步

    結語

    同步非同步的概念先建構好, 之後會用單一篇章來說說SetTimeout、Callback、AJAX