活跃农民
- 积分
- 685
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2011-2-19
- 最后登录
- 1970-1-1
|
[quote]coolandrew 发表于 2019-1-2 15:35
请问楼主第四轮第一题 retry 的实现具体是什么样的?我写了一个,但不大确定:
- 思路基本是对的,题目中传进去的fn是回调形式的,所以可以这么写:
- [code]
- function retry(fn, n, data, successCb, errorCb){
- fn(data, successCb, err => n > 0 ? retry(fn, n - 1, data, successCb, errorCb)) : errorCb(err);
- }
复制代码
如果使用promise,需要自己把fn包装成promise:
- function retry(fn, n, data, successCb, errorCb) {
- return new Promise((resolve, reject) => fn(data, resolve, reject))
- .then(successCb)
- .catch(err => n > 0 ? retry(fn, n - 1, data, successCb, errorCb) : errorCb(err));
- }
复制代码 |
|