Skip to content

JS基础问题 #8

@fakership

Description

@fakership
  1. 实现Promise.retry方法
  Promise.retry = function(fn, num) {
        // 最终是返回一个Promise
        return new Promise((resolve, reject) => {
            // 执行函数
            let action = function (resolve, reject) {
                fn().then((prod) => {
                    resolve(prod);
                }).catch(e => {
                    if (num > 0) {
                        // 不为0递归调用执行函数
                        action(resolve,reject);
                    } else {
                        // 数量为0则拒绝
                        reject(e);
                    }
                    num--;
                })
            }
            // 调用执行函数
            action(resolve,reject);
        })
    }
  1. call bind apply的实现
    [实践系列]call,apply,bind走一个 webfansplz/article#5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions