zoukankan      html  css  js  c++  java
  • 如何使用 Promise?

     API
    1. Promise 构造函数: Promise (excutor) {}
    (1) executor 函数: 执行器 (resolve, reject) => {}
    (2) resolve 函数: 内部定义成功时我们调用的函数 value => {}
    (3) reject 函数: 内部定义失败时我们调用的函数 reason => {}
    说明: executor 会在 Promise 内部立即同步调用,异步操作在执行器中执行
    2. Promise.prototype.then 方法: (onResolved, onRejected) => {}
    (1) onResolved 函数: 成功的回调函数 (value) => {}
    (2) onRejected 函数: 失败的回调函数 (reason) => {}
    说明: 指定用于得到成功 value 的成功回调和用于得到失败 reason 的失败回调
    返回一个新的 promise 对象
    3. Promise.prototype.catch 方法: (onRejected) => {}
    (1) onRejected 函数: 失败的回调函数 (reason) => {}
    说明: then()的语法糖, 相当于: then(undefined, onRejected)
    4. Promise.resolve 方法: (value) => {}
    (1) value: 成功的数据或 promise 对象
    说明: 返回一个成功/失败的 promise 对象
    5. Promise.reject 方法: (reason) => {}
    (1) reason: 失败的原因
    说明: 返回一个失败的 promise 对象
    6. Promise.all 方法: (promises) => {}
    (1) promises: 包含 n 个 promise 的数组
    说明: 返回一个新的 promise, 只有所有的 promise 都成功才成功, 只要有一个失败了就
    直接失败
    7. Promise.race 方法: (promises) => {}
    (1) promises: 包含 n 个 promise 的数组
    说明: 返回一个新的 promise, 第一个完成的 promise 的结果状态就是最终的结果状态
     
    <script>
    /*
    1. Promise 构造函数: Promise (excutor) {}
    excutor 函数: 同步执行 (resolve, reject) => {}
    resolve 函数: 内部定义成功时我们调用的函数 value => {}
    reject 函数: 内部定义失败时我们调用的函数 reason => {}
    说明: excutor 会在 Promise 内部立即同步回调,异步操作在执行器中执行
    2. Promise.prototype.then 方法: (onResolved, onRejected) => {}
    onResolved 函数: 成功的回调函数 (value) => {}
    onRejected 函数: 失败的回调函数 (reason) => {}
    说明: 指定用于得到成功 value 的成功回调和用于得到失败 reason 的失败回调
    返回一个新的 promise 对象
    3. Promise.prototype.catch 方法: (onRejected) => {}
    onRejected 函数: 失败的回调函数 (reason) => {}
    说明: then()的语法糖, 相当于: then(undefined, onRejected)
    4. Promise.resolve 方法: (value) => {}
    value: 成功的数据或 promise 对象
    说明: 返回一个成功/失败的 promise 对象
    5. Promise.reject 方法: (reason) => {}
    reason: 失败的原因
    说明: 返回一个失败的 promise 对象
    6. Promise.all 方法: (promises) => {}
    promises: 包含 n 个 promise 的数组
    说明: 返回一个新的 promise, 只有所有的 promise 都成功才成功, 只要有一
    个失败了就直接失败
    7. Promise.race 方法: (promises) => {}
    promises: 包含 n 个 promise 的数组
    说明: 返回一个新的 promise, 第一个完成的 promise 的结果状态就是最终的
    结果状态
    */
    /*
    new Promise((resolve, reject) => {
    if (Date.now()%2===0) {
    resolve(1)
    } else {
    reject(2)
    }
    }).then(value => {
    console.log('onResolved1()', value)
    }).catch(reason => {
    
    console.log('onRejected1()', reason)
    })
    */
    const p1 = Promise.resolve(1)
    const p2 = Promise.resolve(Promise.resolve(3))
    const p3 = Promise.resolve(Promise.reject(5))
    const p4 = Promise.reject(7)
    const p5 = new Promise((resolve, reject) => {
    setTimeout(() => {
    if (Date.now()%2===0) {
    resolve(1) } else {
    reject(2) }
    }, 100);
    })
    const pAll = Promise.all([p1, p2, p5])
    pAll.then(
    values => {console.log('all 成功了', values)},
    reason => {console.log('all 失败了', reason)}
    )
    // const pRace = Promise.race([p5, p4, p1])
    const pRace = Promise.race([p5, p1, p4])
    pRace.then(
    value => {console.log('race 成功了', value)},
    reason => {console.log('race 失败了', reason)}
    )
    </script>
     
  • 相关阅读:
    Java接口的实现理解
    RDP |SSH |VNC简介
    关于彻底理解cookie,session,token的摘录,生动形象
    7.Reverse Integer&#160;&#160;
    1.Two Sum
    图形化编程娱乐于教,Kittenblock实例,播放与录制声音
    图形化编程娱乐于教,Kittenblock实例,一只思考的变色猫
    内存条性能参数查询(任务8)
    任务8选配内存,重点解读兼容与接口的搭配技术,解读选配内存的过程
    图形化编程娱乐于教,Kittenblock实例,键盘操控角色
  • 原文地址:https://www.cnblogs.com/cfcastiel/p/14486500.html
Copyright © 2011-2022 走看看