7-promise

作者: 谷子多 | 来源:发表于2018-04-06 01:44 被阅读0次

    promise-感性认知

    作用:解决异步回调问题。有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易。

    传统方式 : 回调函数,事件

    语法:

    1. resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去
    2. reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
    3. Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。then方法可以接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为resolved时调用,第二个回调函数是Promise对象的状态变为rejected时调用。其中,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。
     let promise = new Promise((resolve,reject)={
       // resolve : 成功调用
       // reject : 失败调用
     })
     promise.then(res=>{
       console.log(res) //成功结果
     },err=>{
       console.log(err) //失败结果
     })
    

    示例

      let a = 11;
      let promise = new Promise(function(resolve,reject){
        // resolve:成功调用 reject:失败调用
        if(a==10){
          resolve('成功')
        }else{
          reject('失败')
        }
      });
      // 参数:成功,失败
      //promise.then(sucess,fail)
        promise.then(res=>{
          console.log(res) // 成功
        },err=>{
          console.log(err)
      })
    

    捕获错误

     //相当于reject()
      promise.catch(err=>{ 
        console.log(err)
      })
    

    方法

    //将现有的东西,转成一个promise对象,resolve状态,成功
    Promise.resolve('aa');
    
    //将现有的东西,转成一个promise对象,reject状态,失败
    Promise.reject('aa')
    
    //Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。只要有一个错误,就会停止。
      let p1 = Promise.resolve('111');
      let p2 = Promise.resolve('222');
      let p3 = Promise.resolve('333');
      Promise.all([p1,p2,p3]).then(res=>{
        console.log(res) //["111", "222", "333"]
      });
    
    屏幕快照 2018-04-06 上午1.41.46.png

    相关文章

      网友评论

          本文标题:7-promise

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