相关疑难解决方法(0)

扩展Javascript承诺并在构造函数中解析或拒绝它

我想使用ES6语法扩展本机Javascript Promise类,并能够在子类构造函数中调用一些异步函数。基于异步功能的结果,承诺必须被拒绝或解决。

但是,then调用函数时会发生两个奇怪的事情:

  1. 子类构造函数执行两次
  2. 引发“未捕获的TypeError:承诺解决或拒绝函数不可调用”错误

    class MyPromise extends Promise {
        constructor(name) {
            super((resolve, reject) => {
                setTimeout(() => {
                    resolve(1)
                }, 1000)
            })

            this.name = name
        }
    }

    new MyPromise('p1')
        .then(result => {
            console.log('resolved, result: ', result)
        })
        .catch(err => {
            console.error('err: ', err)
        })
Run Code Online (Sandbox Code Playgroud)

javascript inheritance es6-promise es6-class

7
推荐指数
3
解决办法
2020
查看次数

标签 统计

es6-class ×1

es6-promise ×1

inheritance ×1

javascript ×1