promi解决回调函数嵌套
所谓Promi,简单说就是⼀个容器,⾥⾯保存着某个未来才会结束的事件,这就解决了,我上次写的ajax的异步造成的问题,还要在回调函数中去绑定事件,有了promi这些都不是事,有了Promi对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。
promi对象代表⼀个异步操作,有三种状态pending(进⾏中),fulfilled(已成功),rejected("已失败"),异步操作的结果决定这个对象的状态,
⼀旦状态改变,就不会再变,任何时候都可以得到这个结果。Promi对象的状态改变,只有两种可能:从pending变为fulfilled和
appropriate是什么意思
从pending变为rejected。只要这两种情况发⽣,状态就凝固了,不会再变了,会⼀直保持这个结果,这时就称为 resolved(已定型)。如果改变已经发⽣了,你再对Promi对象添加回调函数,也会⽴即得到这个结果。这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。
基本⽤法
创建⼀个promi对象,
let a=new Promi((resolve,reject)=>{
tTimeout(()=>{教育部考试中心
console.log("执⾏了promi")
reject("执⾏成功返回的数据像接⼝数据啥的");
}
再见的英文
,1000)
})
这我只是创建了⼀个对promi对象但是却执⾏了,Promi 新建后就会⽴即执⾏。
加油的英语怎么说
所以应该把promi对象放在函数了,⽐如单击事件函数,单机之后才会新建promi对象然后执⾏,despite的用法
其中两个参数,resolve reject是两个函数,是由js引擎提供的,不需要⾃⼰写
old man
resolve函数的作⽤是,将Promi对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调⽤,并将异步操作的结果,作为参数传递出去;reject函数的作⽤是,将Promi对象的状态从“未完成”变为“失败”(即从 pending 变为rejected),在异步操作失败时调⽤,并将异步操作报出的错误,作为参数传递出去。
Promi实例⽣成以后,可以⽤then⽅法分别指定resolved状态和Promi状态的回调函数。
高层饭局promi对象的then⽅法,可以将两个回调函数作为参数,第⼀个会回调函数就是当promi的状态为resolve的时候调⽤的并且可以接受传来的数据。
a.then(function(value){
console.log(value);
自学日语//成功之后
},
function(value){
console.log(value);
})垂心
状态变为resolve之后就会执⾏then⽅法的第⼀个回调函数,并且把数据也传了过来,在进⾏操作就⾏了,类似于这样在Ajax中请求成功就把返回数据⽤resolve函数传递,就会执⾏then⽅法的第⼀个回调函数,在回调函数中也可以再return promi对象,进⾏回调函数的执⾏,形成链式,如果不⽤promi,在Ajax的回调函数中写就会形成多层嵌套,代码⼀直往右延申,不利于观察,⽤promi链式,可以代码让代码看起来更有条理,
excelle这就我现在的理解,可能有错误,后续会改