ES6 Promise简介

以前,Promise库有promise,Q,bluebird等,后来,ES6中也新增了原生Promise。


Promiss/A+规范 https://promisesaplus.com/

An open standard for sound, interoperable JavaScript promises—by implementers, for implementers.

一个健全的通用JavaScript Promise开放标准,源于开发者,并归于开发者


function test(resolve, reject) {
    var time = Math.random();
    if(time > 0.5){
        resolve('resolve'+time);
    }else{
        reject('reject'+time);
    }
}
var p1 = new Promise(test);
var p2 = p1.then(function(r){
    console.log(r);
});
var p3 = p2.catch(function(res){
    console.log(res);
});
// 0.5秒后返回input*input的计算结果:
function multiply(input) {
    return new Promise(function (resolve, reject) {
        console.log('calculating ' + input + ' x ' + input + '...');
        setTimeout(resolve, 100, input * input);
    });
}
// 0.5秒后返回input+input的计算结果:
function add(input) {
    return new Promise(function (resolve, reject) {
        console.log('calculating ' + input + ' + ' + input + '...');
        setTimeout(resolve, 100, input + input);
    });
}
var p = new Promise(function (resolve, reject) {
    console.log('start new Promise...');
    resolve(123);
});
p.then(multiply)
 .then(add)
 .then(multiply)
 .then(add)
 .then(function (result) {
    console.log('Got value: ' + result);
}).catch(function(reason){
    console.log('catch...'+reason);
});



相关教程:

https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345008539155e93fc16046d4bb7854943814c4f9dc2000

http://liubin.org/promises-book/

http://www.jianshu.com/p/473cd754311f


修改时间 2017-10-29

真诚赞赏,手留余香
赞赏
随机推荐
Node.js 的图片处理模块 images 跨平台图像编解码库
Authorization Schemes 认证模式
使用Keytools生成安卓证书
Vue和Ajax的关系,Axios简介
Webpack 概念理解 module、chunk 和 bundle 的区别
体块透视
javascript基础细讲
Cheerio 中文文档
Git忽略规则.gitignore梳理
ES6 Promise简介