Swift 中的 resume 用法整理
在 Swift 中,resume 主要出現在兩個場景:URLSessionTask 和 Continuation。這篇文章幫你釐清兩者的差異和正確用法。
resume 的觀念如下圖,因為過去的 fetch 沒有 async await ,所以在現在有 async await 的 function 中如果有去 call fetch 的東西,我們會需要知道說,是否 fetch 已經完成了。所以需要透過調用 resume 才會知道說完成了,這個時候 async 的 function 才會結束 task 不然, task 就會一直被掛著,這時 swift 就會有 error log 出現。
## 類似這種
SWIFT TASK CONTINUATION MISUSE: sendHeartbeat(with:) leaked its continuation without resuming it. This may cause tasks waiting on it to remain suspended forever.
