美文网首页
ES6: Promise函数

ES6: Promise函数

作者: 打不过就加入他 | 来源:发表于2016-09-04 21:59 被阅读109次
    • Promise的三种状态
      Pending:进行中 | Resolved(已完成)|Rejected(已失败)

    • 例子

    var promise = new Promise(function(resolve,reject){
      $.ajax({
        success: function(data){
            resolve(data)
        },
       error: function(err){
           reject(err)
      }
      })})
    

    使用

    promise.then(function(data){
    dosomething(data)
    },function(err){
    do something(err)
    })
    
    • 错误捕捉catch
      可以用catch来捕捉错误。

    • 封装一个promise方法

    function getFn(url){
      return new Promise(function(resolve,reject){
        $.ajax({
            url: url,
            success: function(data){
              resolve(data);
          },
            error: function(err){
              reject(err)
          }
        })
    })
    }
    //使用
    getFn(url).then(function(data){
      return getFn(url2)
    }).then(function(url3){
    })
    
    • Promise.all()
      promise.all接受一个由多个promise对象,包装成一个新的promise对象.
      如下,三个promise对象必须都是resolve状态,这个新的promise对象才会是resolve状态

    ** 在平时的开发中,我们可能碰到这种情况,需要多个接口的返回的数据拼装在一起渲染页面之后再执行相应的事件,这时,Promise.all就派上用场了**

    var p1 = new Promise(function(resolve){resolve(111)});
    var p2 = new Promise(function(resolve){resolve(222)});
    var p3 = new Promise(function(resolve){resolve(333)});
    Promise.all([p1,p2,p3]).then(data)
    //[111,222,333]
    
    • Promise.resolve()
      将现有对象转换成为一个promise对象

    • Promise.reject
      将现有对象转换成为一个promise对象
      只不过对象状态为rejec

    日后会补上自己对co模块的使用和理解,这一块内容准备放在koa内容里写

    相关文章

      网友评论

          本文标题:ES6: Promise函数

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