class myPromise { constructor(executor) { executor(this.resolve.bind(this),this.reject.bind(this)) } resolve(data) { console.log(data); } reject(data) { console.log(data); } } const promise = new myPromise() promise((resolve,reject) => { resolve('成功') })
时间: 2024-03-16 08:46:19 浏览: 14
这段代码中,你定义了一个 `myPromise` 类,它接受一个 `executor` 函数作为参数。在构造函数中,你将 `executor` 函数作为参数传递给了 `this.resolve` 和 `this.reject` 方法,并且使用 `bind` 方法将它们绑定到了 `myPromise` 实例上。
接着你创建了一个 `promise` 实例,但是你在实例化时没有传递 `executor` 函数,所以构造函数中也不会执行 `executor` 函数。同时,你尝试使用 `promise` 实例作为函数来调用它,但是 `promise` 实例本身并不是一个函数,所以会抛出错误 `TypeError: promise is not a function`。
如果你想让这段代码正确运行,可以修改如下:
```javascript
class myPromise {
constructor(executor) {
executor(this.resolve.bind(this), this.reject.bind(this))
}
resolve(data) {
console.log(data);
}
reject(data) {
console.log(data);
}
}
const promise = new myPromise((resolve, reject) => {
resolve('成功')
})
```
在创建 `promise` 实例时,传递一个匿名函数作为 `executor` 参数,并在该函数中调用 `resolve` 方法来触发 `myPromise` 实例中的 `resolve` 方法,输出 `'成功'`。