zoukankan      html  css  js  c++  java
  • promise

    1为什么需要promise:

    ajax请求id,id请求用户名,用户名获取email

      产生回调地狱:回调函数中嵌套回调

    Promise解决了回调地狱

    2promise使用。

    promise是一个构造函数,通过new关键字实例化对象。。

     语法:
     1 new promise()

    promise函数接受参数。(一个函数)一个函数作为,参数。 ()=>{} 

    参数函数接受参数。

        resolve,reject。

    2 promise 实例有两个属性。

     state:状态。

     result:结果。

    const p =new Promise( ( resolve, reject) => { })

    1) promise对象的状态:(ajax:准备,成功了,失败了,)

    1 pending 装备

    2 fulfill:成功。完成

    3 rejected:失败

    2) 状态的改变:

    通过调用reslove()和reject()改变当前的promise 的对象状态。

    resolve();promise对象的状态 改成fulfilled

    reject();promise对象的状态 改成 rejected;

    promise状态改变是 一致性的。

    3)promise的结果。

    3 p对象 的方法。

    promise函数里面有3个方法。

    then方法。

    参数:1 是一个函数,(成功的时候执行)2还是一个函数。(失败的时候执行。)

    返回值:是一个promise对象。

    p.then( ()=>{

    console.log(‘成功时候调用。’)//resolve

    },()=>{

    console.log(‘失败的时候调用’); //reject

    } )

    console.log(p);

    then方法的参数函数中,通过promise对象结果。

    then方法返回一个promise实例。状态,pending。

    pending。 fulfilled。

    链式操作: new  Promise((resolve,reject)=>{}).then().then()

    then 方法,通过return 返回的promise改为fullfiled。

  • 相关阅读:
    call()和apply( )
    String.prototype.replace( )
    Global对象和浏览器的window对象
    ros qt 項目增加新的线程
    ubuntu18.04 在QT中添加ros环境搭建 亲测可用
    ubuntu18.04系统下安装Nvidia驱动 + cuda10.0 + cudnn7
    【ROS学习】发布自定义数据结构的话题
    Autoware快速使用资料
    TX2-ubuntu无外接显示器远程桌面时分辨率过低
    Jetson TX2 安装 远程桌面软件 NoMachine
  • 原文地址:https://www.cnblogs.com/hacker-caomei/p/14208845.html
Copyright © 2011-2022 走看看