首页 > 代码库 > JS promise

JS promise

1.Promise是什么?

Promise是抽象异步处理对象以及对其进行各种操作的组件。

 

2.实例化

使用new来调用Promise的构造器来进行实例化

var promise = new Promise(function(resolve, reject) { // 异步处理 // 处理结束后、调用resolve 或 reject });

 

3.实例方法

promise.then(onFulfilled, onRejected)

resolve时 onFulfilled 会被调用
reject时 onRejected 会被调用

 

4.静态方法

Promise.all()

Promise.resolve()

例子:

function asyncFunction() {
    
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve(‘Async Hello world‘);
        }, 16);
    });
}

asyncFunction().then(function (value) {
    console.log(value);    // => ‘Async Hello world‘
}).catch(function (error) {
    console.log(error);
});

 

5.Promise的状态

Fulfilled 成功

Rejected 失败

Pending 既不是resolve也不是reject的状态

 

6.new Promise的快捷方式

Promise.resolve(value)

Promise.resolve(42);

相当于

new Promise(function(resolve){
    resolve(42);
});

//resolve(42); 会让这个promise对象立即进入确定(即resolved)状态,并将 42 传递给后面then里所指定的 onFulfilled 函数。

Promise.resolve(42).then(function(value){
    console.log(value);
});

Promise.reject(value) 同理

 

7.promise.catch

promise.catch() 相当于 promise.then(undefined, onRejected);

 

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

JS promise