美文网首页
Promise小结

Promise小结

作者: Sharp丶TJ | 来源:发表于2021-12-14 18:33 被阅读0次

Promise

1、怎么使用Promise

//记好: 
return new Promise((resolve,reject)=>{.......})

任务成功调用 resolve(result)
任务失败调用 reject(error)
resolve 和 reject 会再去调用成功和失败的函数

2、Promise的用途
让你的代码规范,防止回调地狱,可以捕获错误

Promise是前端解决异步问题的统一方案

3、如何使用 Promise.prototype.then

MDN的解释:then() 方法返回一个 Promise (en-US)。它最多需要有两个参数:Promise 的成功和失败情况的回调函数。

自己的理解: .then是一种链式操作,可以多次调用: 使用then方法之后会返回一个promise对象,可以继续用then方法调用,再次调用所获取的参数是上个then方法return的内容

// 创建一个promise
let promise = new Promise((resolve, reject) => {
            // 做一些事情(进行状态)
            if (/*当满足某个条件*/) {
                resolve(一些数据) // 调用resolve函数 (由进行转变到成功状态)
            } else(/*即不满足条件*/){
                reject(错误)  // 调用rejected函数(由进行转变到失败状态)
            }
        })

// 使用这个promise
promise.then((一些数据) => {
    // 这里写resolve函数的具体实现
}, (错误) => {
    // 这里写reject函数的具体实现
})

4、如何使用 Promise.all

MDN给出的解释是:Promise.all() 方法接收一个promise的iterable类型(注:Array,Map,Set都属于ES6的iterable类型)的输入,并且只返回一个Promise实例, 那个输入的所有promise的resolve回调的结果是一个数组。这个Promise的resolve回调执行是在所有输入的promise的resolve回调都结束,或者输入的iterable里没有promise了的时候。它的reject回调执行是,只要任何一个输入的promise的reject回调执行或者输入不合法的promise就会立即抛出错误,并且reject的是第一个抛出的错误信息。

我的解析就是: Promise.all() 其实是将多个Promise放在一个数组中,当整个数组的全部promise成功时才会返回成功,当数组中的promise有一个出现失败时就返回失败 (失败的原因是第一个失败promise的结果)。

Promise.all([promise1, promise2]).then(resolve, reject)
// 只有当promise1和promise2都成功时才会调用resolve
// 有一个promise失败都会调用reject

5、 如何使用 Promise.race

MDN解释: Promise.race(iterable) 方法返回一个 promise,一旦迭代器中的某个promise解决或拒绝,返回的 promise就会解决或拒绝。

我的解析: Promise.race(iterable),其实就是将多个Promise放在一个数组中,数组中有一个promise最先得到结果,不管是" 完成(resolve)"还是" 失败(reject)" , 那么
这个 .race 的方法就会返回这个结果。

 Promise.race([promise1, promise2]).then(resolve, reject)
// promise1和promise2只要有一个成功就会调用resolve;
// promise1和promise2只要有一个失败就会调用reject;
// 总结: 谁第一个成功或失败,就认为是race的成功或失败。

相关文章

  • Promise小结

    Primise 总结 js 回调 同步回调func add(a,b,func){ func(a+b)};cons...

  • promise小结

    很早之前就听说过promise了,但是一直没有时间深入研究。这两天有时间看了一下,下面就我自己的理解整理一下pro...

  • Promise小结

    Promise 1、怎么使用Promise 任务成功调用 resolve(result)任务失败调用 reject...

  • promise的小结

    声明一个Promise对象 Promise.prototype.then() 和 Promise.prototyp...

  • Promise 用法小结

    https://blog.csdn.net/qq_34645412/article/details/81170576

  • Promise用法小结

    Promise 的含义 Promise对象有以下两个特点 :(1)对象的状态不受外界影响。Promise对象代表一...

  • Promise基础分析小结

    Promise最基础分析与理解 同步与异步同步是当发起一个请求后,如果未得到结果,会一直等待,知道结果出现;异步是...

  • iOS Promise学习小结

    一、Promise概述 1、为什么引入Promise 在日常开发中,异步操作是很常见的情况,比如发起网络请求后,处...

  • 8.NodeJs之小白初识promise

    Promise入门级介绍 本文是观看了慕课网上的进击的NodeJs(二)后写的小结,感谢Scott老师 本文只为了...

  • ES6 promise 用法小结

    ES6 promise 用法小结 Js 是一⻔单线程语言,早期解决异步问题,大部分是通过回调函数进行。 比如我们发...

网友评论

      本文标题:Promise小结

      本文链接:https://www.haomeiwen.com/subject/zcppfrtx.html