JS promise

Posted 多多明明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

澄清 node.js + promises 片段

前端面试题之手写promise

js中promise到底怎么用

在 Promise 中包装 Auth0 的 parseHash 函数

js promise详解

什么时候然后从Promise.all()的子句运行?