Promise对象

2017-09-06  本文已影响0人  萍水相逢hu

参考文章

Promise 用于处理异步调用的返回值

语法

new Promise(function(resolve,reject){ })

Promise构造器的参数是function类型,该function有两个为方法类型的参数,resolve和reject,如果调用了resolve说明该Promise被成功解析,而当调用了reject时,表明该Promise的值不能用于后续处理也就是被拒绝了。这两个方法主要用于初始化异步调用代码,一旦异步代码调用完成,要么调用resolve方法表示promise被成功机械,要么调用reject方法表明Promise被拒绝。

then(成功回调函数,失败回调函数)

pending状态的Promise对象可能被填充了(fulfilled)值,也可能被某种理由(异常信息)拒绝(reject)了。当其中任一种情况出现时,Promise对象的then方法绑定的处理方法(handlers )就会被调用(then方法包含两个参数:onfulfilled和onrejected,它们都是Function类型。当值被填充时,调用then的onfulfilled方法,当Promise被拒绝时,调用then的onrejected方法, 所以在异步操作的完成和绑定处理方法之间不存在竞争)

基本用法

function doThings(){
     return new Promise(function(resolve,reject){
          setTimeout(function(){
               resolve('成功')
         },0) 
     })
}

doThings().then(function(res){console.log(res)})  //输出  -  ‘成功’

链式用法

function doThings1(){
     return new Promise(function(resolve,reject){
          setTimeout(function(){
               resolve('成功1')
         },0) 
     })
}  

function doThings2(m){
     return new Promise(function(resolve,reject){
          setTimeout(function(){
               resolve(m)
         },0) 
     })
}

doThings1().then(function(res){return doThings2(res)}).then(function(res){ console.log(res)})
上一篇 下一篇

猜你喜欢

热点阅读