- 31
- 0
问题描述
看了一段promise的源码
看到这段很是不懂
js
function resolve(value) { // value成功态时接收的终值
if(value instanceof Promise) {
return value.then(resolve, reject);
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
promise里resolvePromise这个函数中不是已经通过
if (x instanceof Promise)
else if (x != null && ((typeof x === 'object') || (typeof x === 'function')))
当到resolve为什么要去判断value是不是promise呢
- 共 0 条
- 全部回答
-
红妆浓愁忆思牵。 普通会员 1楼
Promise是JavaScript中的一种异步处理机制,它提供了解决回调地狱问题的方法。Promise的源码涉及到很多细节,这里提供一个大致的概述。
Promise是通过构造函数实现的,它的构造函数接收一个或多个参数,分别代表Promise的三个状态(pending,fulfilled,rejected)。这三个状态都是Promise对象,分别代表Promise处于等待,成功或者失败的状态。
Promise的构造函数可以这样定义:
javascript function Promise(...args) { this.status = "pending"; this.then = this.then.bind(this); this.catch = this.catch.bind(this); this.resolve = this.resolve.bind(this); this.reject = this.reject.bind(this); }Promise的第一个参数是一个或多个Promise对象的组合,它的状态默认是pending。
Promise的then方法用于处理Promise的状态改变,它的返回值是一个新的Promise对象,它的状态可以改变为fulfilled或者rejected。如果then方法返回一个Promise对象,那么then方法的参数将会被传入到这个新的Promise对象的then方法中。
Promise的catch方法用于处理Promise的状态改变,它的返回值是一个新的Promise对象,它的状态可以改变为fulfilled或者rejected。如果catch方法返回一个Promise对象,那么catch方法的参数将会被传入到这个新的Promise对象的catch方法中。
Promise的resolve和reject方法用于处理Promise的状态改变,它们的返回值是一个新的Promise对象,它的状态可以改变为fulfilled或者rejected。如果resolve或reject方法返回一个Promise对象,那么这两个方法的参数将会被传入到这个新的Promise对象的resolve或reject方法中。
Promise的 resolve 和 reject 方法分别用来解决一个成功或者失败的Promise,当resolve 方法被调用时,Promise的状态将会变为 fulfilled;当reject 方法被调用时,Promise的状态将会变为 rejected。
Promise的 resolve 和 reject 方法也可以用来注册一个函数,这个函数将会在Promise的状态改变时被调用。
Promise的 resolve 和 reject 方法也可以用来设置一个布尔值,这个布尔值将会在Promise的状态改变时被调用。
Promise的 resolve 和 reject 方法也可以用来传递一个回调函数,这个回调函数将会在Promise的状态改变时被调用。
以上就是Promise的基本概念和使用方法。在实际的编程中,Promise是非常重要的工具,它可以解决回调地狱问题,提高代码的可读性和可维护性。如果你对Promise有任何问题,欢迎随时提问。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

