[問題] 非同步觀念釐清

作者: t19960804 (泥好嗎)   2019-01-31 10:12:51
當我使用非同步的方法去取得資料時
為什麼需要用completion去做處理?
有去查了一下
但只說因為是非同步所以要用completion
我還是不太清楚這兩者之間的關係
求大大開釋
作者: ch30529 (主人)   2019-01-31 11:17:00
不知道什麼時候得到回應,又要在回應之後做
作者: darktt (小朱)   2019-01-31 11:20:00
正常code的順序是同步的時候,而非同步的時候是不會等待結果到了才接著下一行,而是先往下一行跑,等結果回來後再處理這要從Swift來看會比較快理解,Swift的閉包等同於method,所以你可以當completion是一個特殊的method,是用來處理非同步呼叫用的
作者: t19960804 (泥好嗎)   2019-01-31 11:38:00
我把completion放進非同步方法的scope中處理回傳的資料,執行的順序變成上到下,所以資料才能傳入completion中,這樣的觀念是對的嗎?
作者: atst2 (atst2)   2019-01-31 23:08:00
想像一下你想要泡茶, 泡茶前要先燒開水; 但如果你一直等著水燒開,其他事就不用做了; 所以你去買一個氣笛水壺, 水燒開就自動通知你回來泡茶. 在這段時間你就可以做別的事.completion,或者是callback, 就像是氣笛的角色.
作者: gundam00 (傻那駕駛中)   2019-02-01 14:24:00
把completion內跟其他部分都print出來 就知道了
作者: bbonline229 (bbonline229)   2019-02-01 14:25:00
推樓上

Links booklink

Contact Us: admin [ a t ] ucptt.com