首页 > 其他 > 详细

认识并使用Promise

时间:2021-04-26 10:44:04      阅读:21      评论:0      收藏:0      [点我收藏+]

1 了解Promise

  es5在开发过程中基本上都是api用 地狱回调形式,非常不太友好。es6出现了promise,可以很好的解决回调问题。

  

Promise有三种状态:

1、Pending Promise 对象实例创建时的初始态;

2、Fulfilled成功时的状态

3、Rejected失败时的状态

2 使用Promise

  

Promise.then():用来指定Promise对象的状态改变时要执行的操作

let promise = new Promise(function(resolve,reject){
    resolve(‘成功‘)
    //reject(‘失败‘)
})

promise.then(function (data){
    conlose.log(‘data: ‘,data);
},function(err){
    console.log(‘err: ‘,err);
})

Promise.all():接收一个数组,数组内是Promise实例,必须都成功才能表示成功

Promise.race():接收一个数组,数组内是Promise实例,最早返回的对象成功了,就变为成功态,如果失败了,就改变状态为失败态。

let fs = require(‘fs‘);

function read(url){
    return new Promise(function(resolve,reject){
        fs.readFile(url,‘utf8‘,function(err,data){
            if(err) reject(err);
            resolve(data)
        })
    })
} 

Promise.all([read(‘1.txt‘),read(‘2.txt‘)]).then(function (data){
    console.log(data);
},function(err){
    console.log(‘err: ‘,err);
})

Promise.race([read(‘1.txt‘),read(‘2.txt‘)]).then(function (data){
    console.log(data);
},function (err){
    console.log(‘err: ‘,err);
})

Promise.resolve():返回一个Promise实例,这个Promise实例处于resolve状态。

Promise.resolve([1,2,3]).then(function(data){
    console.log(data)
});
输出:[1,2,3]

Promise.reject():返回一个Promise实例,这个Promise实例处于reject状态。

Promise.reject([1,2,3]).then(null,function(err){
    console.log(‘err‘,err)
});
输出:[1,2,3]

认识并使用Promise

原文:https://www.cnblogs.com/sy2077/p/14702729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!