首页 > 其他 > 详细

浏览器前端相关_扩展放啊发

时间:2017-12-13 21:24:45      阅读:197      评论:0      收藏:0      [点我收藏+]

Promise:“承诺将来会执行”的对象在JavaScript中称为Promise对象。Promise有各种开源实现,在ES6中被统一规范,由浏览器直接支持。

Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了.

new Promise(test).then(function (result) {
    console.log(‘成功:‘ + result);
}).catch(function (reason) {
    console.log(‘失败:‘ + reason);
});//test为一个异步处理函数

//串行执行这样的异步任务,不用Promise需要写一层一层的嵌套代码。
job1.then(job2).then(job3).catch(handleError);//job为Promise对象

//并行执行任务Promise.all()
//试想一个页面聊天系统,我们需要从两个不同的URL分别获得用户的个人信息和好友列表,这两个任务是可以并行执行的
var p1 = new Promise(function (resolve, reject) {
    setTimeout(resolve, 500, ‘P1‘);
});
var p2 = new Promise(function (resolve, reject) {
    setTimeout(resolve, 600, ‘P2‘);
});
// 同时执行p1和p2,并在它们都完成后执行then:
Promise.all([p1, p2]).then(function (results) {
    console.log(results); // 获得一个Array: [‘P1‘, ‘P2‘]
});

//并行执行任务取先响应的结果Promise.race(),
//有些时候,多个异步任务是为了容错。比如,同时向两个URL读取用户的个人信息,只需要获得先返回的结果即可。
var p1 = new Promise(function (resolve, reject) {
    setTimeout(resolve, 500, ‘P1‘);
});
var p2 = new Promise(function (resolve, reject) {
    setTimeout(resolve, 600, ‘P2‘);
});
Promise.race([p1, p2]).then(function (result) {
    console.log(result); // ‘P1‘
});

  

 

浏览器前端相关_扩展放啊发

原文:http://www.cnblogs.com/lyfingchow/p/8034764.html

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