推 ch30529: 不知道什麼時候得到回應,又要在回應之後做 01/31 11:17
推 darktt: 正常code的順序是同步的時候,而非同步的時候是不會等待 01/31 11:20
→ darktt: 結果到了才接著下一行,而是先往下一行跑,等結果回來後再 01/31 11:20
→ darktt: 處理 01/31 11:20
→ darktt: 這要從Swift來看會比較快理解,Swift的閉包等同於method, 01/31 11:24
→ darktt: 所以你可以當completion是一個特殊的method,是用來處理非 01/31 11:24
→ darktt: 同步呼叫用的 01/31 11:24
→ t19960804: 我把completion放進非同步方法的scope中處理回傳的資 01/31 11:38
→ t19960804: 料,執行的順序變成上到下,所以資料才能傳入completio 01/31 11:38
→ t19960804: n中,這樣的觀念是對的嗎? 01/31 11:38
→ atst2: 想像一下你想要泡茶, 泡茶前要先燒開水; 但如果你一直等著 01/31 23:08
→ atst2: 水燒開,其他事就不用做了; 所以你去買一個氣笛水壺, 水燒 01/31 23:10
→ atst2: 開就自動通知你回來泡茶. 在這段時間你就可以做別的事. 01/31 23:10
→ atst2: completion,或者是callback, 就像是氣笛的角色. 01/31 23:11
推 gundam00: 把completion內跟其他部分都print出來 就知道了 02/01 14:24
推 bbonline229: 推樓上 02/01 14:25
推 ou9810: 建議你嘗試用gcd寫一個非同步的程式 175.98.152.120 03/22 17:08