zoukankan      html  css  js  c++  java
  • ES6 promise对象

    解决异步问题

        1. 回调函数的方式

    1 function func(callback){
    2 setTimeout(()=>{
    3 callback("异步数据")
    4 },1000)
    5 }
    6 func(function (res){
    7 console.log(res)
    8 })

        2. 通过Promise解决异步问题

    这个是ES6新出的解决异步问题的语法,通过promise可以避免回调函数产生的回调地域的问题
     
    • 怎么使用Promise

    1 let pro = new Promise((reslove,reject)=>{
    2 // 异步操作放在这个里面,一旦创建promise对象,就会执行这里的代码 
    3 // 通过 reslove标识执行成功 reslove(参数). 这里reslove的参数, 
    4 // 通过reject标识失败, reject(参数)
    5 })
    6 pro.then(res=>{
    7 // 这个res就是reslove的时候括号里写的数据}).catch(err=>{
    8 // 这个err就是reject的时候括号里的数据
    9 })
      • promise的状态只会变化一次
        • pendding: 等待
        • fulfilled(resloved) : 成功
        • rejected: 失败
     
    • promise的链式调用   promise通过链式调用解决回调地域的问题
      • Promise的.then方法返回的还是一个Promise对象,这个Promise的状态是由上一个.then方法中函数的返回值的决定
        • pro.then(res=>{})
        • 上一个.then返回了一个Promise对象。 这里得到的状态就和这个Promise对象一样
        • 上一个.then返回了一个非Promise对象。可以直接在后续函数拿到这个数据
      • Catch() 方法  只接受一个参数,对操作异常后进行处理
        • pro.catch(err=>{})
    • promise两个API
      • Promise.all()    所有Promise都执行完了在进行一些操作

    Promise.all([promise1,promise2,promise3]).then(results=>{
    // 获取所有Promise的结果 console.log(results);
    })
      •  Promise.race()    有一个执行完了就进行一些操作
    // 有任何一个Promise完成了就结束Promise.race([promise1,promise2,promise3]).then(res=>{
    // 拿到的是第一执行完的结果 console.log(res);
    })
     
  • 相关阅读:
    php
    php
    linux 网络管理基础 OSI ISO IOS的区别
    Linux 添加交换分区的步骤
    linux 命令
    linux命令
    linux 命令
    linux 命令
    Linux命令
    linux命令- 挂载命令 mount
  • 原文地址:https://www.cnblogs.com/hjcby/p/13612609.html
Copyright © 2011-2022 走看看