Promise 的三种状态,以及then、catch的链式调用

作者&投稿:巧湛 (若有异议请与网页底部的电邮联系)
~

promise的三种状态:pending resolved rejected
1)pending:在过程中,没有结果,不会触发then和catch
2)resolved:已经解决,触发then
3)rejected:已经拒绝,触发catch

resolved状态 reject状态

then和catch状态改变
then正常返回resolved,里面有报错返回rejected
catch正常返回resolved,里面有报错返回rejected

resolve---->then
then 中是一个正常return ,得到resolve ,可以继续执行 .then里面的内容
then 中是一个throw error,得到reject,不能执行后面的 .then
rejected---->catch
catch 中是一个正常return ,得到resolve可以继续执行 .then里面的内容
catch 中是一个error,得到reject ,不能执行后面的 .then,可以执行catch

eg1

结果 1 3
第一个then中成功了,就相当于得到了一个resolve,resolve执行then,不执行catch,2不执行,3执行

eg2

结果 1 2 3
第一个then中有throw err 出错了,相当于reject,reject执行catch,所以catch里面的内容正常执行,catch正常执行了,相当于resolve,resolve会执行then

eg3

结果 1 2
第一个then执行,里面有err ,相当于reject,执行catch,catch成功执行了,相当于resolved,执行then,不执行catch,所以2执行,3不执行




科尔沁区18584871659: 怎么用promise实现异步控制 -
虫冯瑞平: 一.定义 promise是对异步编程的一种抽象.它是一个代理对象,代表一个必须进行异步处理的函数返回的值或抛出的异常.也就是说promise对象代表了一个异步操作,可以将异步对象和回调函数脱离开来,通过then方法在这个异步操作上面绑...

科尔沁区18584871659: javascript的Promise和回调有什么区别 -
虫冯瑞平: 语言层级上的没什么区别,promise本质上还是回调,只是写法变成链式

科尔沁区18584871659: javascript关于promise的一个应用 -
虫冯瑞平: new Promise(function(resolve, reject) { $.getJSON("url1", function(data) { resolve(data.reduce(function(a, b) { return a + b })); }); }).then(function(value) { return new Promise(function(resolve, reject) { $.getJSON("url2", function(data) { resolve(...

科尔沁区18584871659: javascript库有哪些支持promise规范 -
虫冯瑞平: 许多的语言,为了将异步模式处理得更像平常的顺序,都包含一种有趣的方案库,它们被称之为promises,deferreds,或者futures.JavaScript的promises ,可以促进关注点分离,以代替紧密耦合的接口. 本文讲的是基于Promises/A 标准的...

科尔沁区18584871659: 前端的Promise是干啥的? -
虫冯瑞平: Promise是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件.ES6统一了用法,并原生提供了Promise对象.作为对象,Promise有以下两个特点: (1)对象的状态不受外界影响.(2)一旦状态改变了就不会在变,也就是说...

科尔沁区18584871659: 如何把回调函数的返回值promise化 -
虫冯瑞平: promise是对异步编程的一种抽象.它是一个代理对象,代表一个必须进行异步处理的函数返回的值或抛出的异常.也就是说promise对象代表了一个异步操作,可以将异步对象和回调函数脱离开来,通过then方法在这个异步操作上面绑定回调函...

科尔沁区18584871659: promise的常用用法? -
虫冯瑞平: 你好,promise 的用法小节 promise KK: [] DJ: [] n. 1. 承诺,诺言[C][(+of)][+(that)][+to-v] Give me your promise that you'll never be late again. 答应我你绝不再迟到了. 2. 希望,前途[U][S] The young man shows promise as a poet. 这位青年有成为诗...

科尔沁区18584871659: 如何用Promise控制for循环的异步流程 -
虫冯瑞平: 既然是异步,就不可能用for循环, 因为for循环体中是没有办法暂停等待异步调用的. 应该用函数递归的方式循环

科尔沁区18584871659: 求promise的用法 -
虫冯瑞平: 你好,promise 的用法小节 promise kk: [] dj: [] n. 1. 承诺,诺言[c][(+of)][+(that)][+to-v] give me your promise that you'll never be late again. 答应我你绝不再迟到了. 2. 希望,前途[u][s] the young man shows promise as a poet. 这位青年有成为诗人的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网