天天看點

從Swift代碼塊看同步異步

最近被ios裡面的同步異步搞得很痛苦。就是下面這段代碼:

可以很明顯的看出來 我是想能最後輸出一個東西 使得我能确定這個狀态碼傳回的是200

但是可想而至 無論我怎麼折騰 最後傳回的都是success==false。

這是因為我經常見的那種普通函數 都是同步的 即所有的東西 都會按順序執行 然後會傳回一個最終結果

可是這個函數不一樣 因為裡面的http請求是異步的 也就是說 當我return的時候 其實http請求還沒有執行完畢。因為函數的執行速度是納秒級别的 而http請求卻是毫秒級别的。

是以這就造成了那種情況,即每次傳回的總是false.

這裡的處理方法之後需要研究一下 但是現在來說 隻要能實作這個功能就行,是以我們加了一個while和一個計時器 如果在規定時間内while跳不出來 那麼就自動終止。