解決的問題:乙個複雜的上層函式,函式內部進行的跨執行緒的呼叫,業務需求想讓函式依次執行(類似乙個動態的callback hell)例如有這樣乙個原始函式
func
fetch
(_ compeltion: (()
-> void)?)
複製**
先把原始函式的名字改為
func
originalfetch
(_ compeltion: (()
-> void)?)
複製**
再寫乙個新函式,返回乙個promise
func
unlimitedfetch
(_ compeltion: (()
-> void)?) -> promise
originalfetch
}}複製**
宣告乙個promise變數
var fetchpromise: promise
複製**
再寫乙個和原函式一樣簽名的函式,這樣就不會影響外部呼叫
func
fetch
(_ compeltion: (()
-> void)?)
return unlimitedfetch(callback)}}
else
}複製**
原理:每次呼叫的時候,都初始化或者追加乙個promise到fetchpromise的呼叫鏈上,形成類似下面的結構
promise // 第一次呼叫
.then
.then
//...
複製**
大功告成。 ajax跨域請求封裝
開啟乙個ajax請求 第乙個引數是請求的方式 可以是get post 第二個引數是請求的位址 第三個引數是否傳送 ajax.send 向伺服器傳送ajax請求 獲取ajax請求的響應資料 ajax.onreadystatechange function options 呼叫ajax請求是傳遞過來的引...
visio直線交叉相交跨線修改
在使用visio畫流程圖時,經常會遇到兩條直線相交。下面講如何修改使得相交點變成我們想要的方式。可以設定如下 1 全域性直線相交,設定跨線標誌。2 對每條線進行相交跨線設定。一 全域性設定。首先,畫上交叉線。如下圖。選擇直線 格式 行為。如圖 有如下選項 按頁上指定 指對當頁生效,有跨線 從不 全部...
pytorch五 用Variable實現線性回歸
匯入相關包 import torch as t import matplotlib.pyplot as plt 構造資料 def get fake data batch size 8 設定隨機種子數,這樣每次生成的隨機數都是一樣的 t.manual seed 10 產生隨機資料 y 2 x 3,加上...