码迷,mamicode.com
首页 > 其他好文 > 详细

promise理解

时间:2018-04-17 00:02:19      阅读:42      评论:0      收藏:0      [点我收藏+]

标签:func   ace   就是   异常   rac   com   AC   span   settime   

理解图: 以下promise 使用了链式调用的方式 传入一个成功 与失败的函数作为参数使用

技术分享图片

 1 API实现: 
 2 //立即执行 简单实例
 3 let promise = new Promise(function(resolve, reject) {
 4   console.log(‘Promise‘);
 5   resolve();
 6 });
 7 promise.then(function() { //成功时候的调用
 8   console.log(‘resolved.‘);
 9 }).catch(function (reason) { //异常时候的调用
10     console.log(‘失败:‘ + reason);
11 });
 
以上代码理解:Promise 传入 成功以及失败的方法  .then()//这里调用的成功的方法  

//串行调用:
p.then(multiply)
.then(add)
.then(multiply)
.then(add)
.then(function (result) {
    log(‘Got value: ‘ + result);
});

串行调用与并行调用 (聊天室获取各个用户说的) 
//并行调用: Promise.all
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 谁执行快就先用谁的
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‘
});

 
 
 

promise理解

标签:func   ace   就是   异常   rac   com   AC   span   settime   

原文地址:https://www.cnblogs.com/lanSeGeDiao/p/8859131.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!