高階函式的使用

2021-09-12 17:30:19 字數 674 閱讀 4920

位元組跳動面試時問題:原函式例如fetchdata是乙個非同步函式,嘗試從伺服器端獲取一些資訊並返回乙個promise。寫乙個新的函式可以自動重試一定次數,並且在使用上和原函式沒有區別。

這個問題其實不是很難,不過可能是太菜了緊張的原因,當時答得不是很好。不過思路還是很明確的,內部通過閉包來計數,一旦成功獲得資料就返回,否則就繼續嘗試,直到重試次數達到上限位置。

function retry(fetch, n)  else ).catch(err => )}}

}

當時差不多就是那麼答的,有幾個問題是,函式呼叫方式與原來不通,按道理應該返回乙個promise,更準確的說是返回乙個返回promise的函式,如果有什麼問題也應該在外面能catch住。另一方面,也許fetch函式要接受引數,也應該傳遞進去才行。

修改後的函式如下

function retry(fetch, n)  else ).catch(err => )}}

})}

}

最後自己寫了個fetch進行測試

function fetch()  else 

}, 5000)

})}

結果符合預期,問題解決。當然也可以返回async function,不過和promise本質上是乙個思路。

高階函式的使用

位元組跳動面試時問題 原函式例如fetchdata是乙個非同步函式,嘗試從伺服器端獲取一些資訊並返回乙個promise。寫乙個新的函式可以自動重試一定次數,並且在使用上和原函式沒有區別。這個問題其實不是很難,不過可能是太菜了緊張的原因,當時答得不是很好。不過思路還是很明確的,內部通過閉包來計數,一旦...

高階函式的使用

位元組跳動面試時問題 原函式例如fetchdata是乙個非同步函式,嘗試從伺服器端獲取一些資訊並返回乙個promise。寫乙個新的函式可以自動重試一定次數,並且在使用上和原函式沒有區別。這個問題其實不是很難,不過可能是太菜了緊張的原因,當時答得不是很好。不過思路還是很明確的,內部通過閉包來計數,一旦...

python 高階函式的使用

1.變數是可以指向函式的!abs 是內建函式 if name main print abs 8 f abs 變數指向於函式 print f 9 結果89 2.函式名其實就是指向函式的乙個變數 例如 如果把這個內建函式指向於另外的函式,就無法使用了,見下 print 函式名 abs abs len a...