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

    promise-感性认知 作用:解决异步回调问题。有了Promise对象,就可以将异步操作以同步操作的流程表达出来...

  • JS原生引用类型解析7-Promise类型

    1. 简介 ES6引入了一个全新的对象Promise,用于表示一个异步操作的最终状态(完成或失败),以及其返回的值...

网友评论

      本文标题:7-promise

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