关于Promise
1.promise的作用
2.promise对象有三种状态:
pending(初始状态)
Resolved(成功状态)
Rejected(失败状态)
如下图所示,pending状态的Promise有2条分支可以选择,不能同时选择,只能2选1,
因为promise.prototype.then和promise.prototype.catch方法最后都返回promise对象,所以可以使用链式调用。

3.创建promise对象
如下代码所示:
首先我们通过new 调用promise的构造器进行实例化,promise的构造函数接收一个参数,是函数,这个函数里面需要传入两个参数:resolve,reject。分别执行异步操作之后的成功的回调函数,失败之后的回调函数。
我们接着往下看4.promise的方法
var p1=new Promise(function(resolve,reject){ setTimeout(() => { var num = Math.random()*100; if(num>50){ resolve(num) }else{ reject(num) } }, 2000); })
讯享网
4.promise的方法
promise.then(成功状态的方法,失败状态的方法),{注意:then里面的2个参数函数的位置是固定的}
讯享网 var p1=new Promise(function(resolve,reject){ resolve('成功了') }) p1.then((data)=>{console.log(data)},(res)=>{console.log(res)}); //后台输出 成功了之前讲过promise的3种状态,上面的例子中 p1的状态为resolved成功状态,所以then之后,它就调用了then 里面的成功状态的方法。
then 方法也可以链式调用,如下:
var p1=new Promise(function(resolve,reject){ resolve('成功了') }) p1.then((data)=>data+'+1',(res)=>res) //成功后返回 data+'+1' 然后作为下一个data 的参数传下去 .then((data)=>{console.log(data)},(res)=>{console.log(res)}) // 输出结果为 成功了+1
promise.resolve(...):可以接受thenable对象,将其转化为非thenable的值。将里面接受的值转化 为一个promise对象,且resolve状态为成功状态,我自己理解为:
new Promise(resolve =>{resolve('成功')})
(thenable对象:拥有then方法的对象均成为thenable对象)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/20105.html