跳至主要內容

Promise 学习小结——静态方法详解

莫林...大约 1 分钟

Promise 学习小结——静态方法详解


1、Promise.all(iterable)

该方法返回一个promise,该promise会等iterable参数内的所有promise都被resolve后被resolve,或以第一个promise被reject的原因而reject。

语法

Promise.all(iterable)

参数iterable是一个可迭代对象,如Array。

描述

结果是promise 的一组值。若传入的可迭代数组中某项不是一个promise,该项会被用Promise.resolve转换为一个promise。若任一个传入的promise被拒绝了,all promise立刻带着该promise的拒绝原因进入rejected状态,不再理会其它传入的promise是否被解决。

示例

const promise = Promise.resolve(3);
Promise.all([true, promise])
    .then((values) => {
        console.log(values);//[true, 3]
    })

2、Promise.resolve(value)

该方法返回一个以给定值解析后的promise对象。 若这个给定值为一个thenable,返回的promise会跟随这个thenable对象,并采用它的最终状态。 否则,以该给定值为成功状态返回promise对象。

语法

Promise.resolve(value)
Promise.resolve(promise)

参数iterable是一个值、promise对象或thenable。

示例

  • 对值resolve
Promise.resolve('success')
    .then((value) => {
        console.log(value);//success
    }, (value)=> {
        console.log(value); //not called
    })
  • 对数组resolve
const p = Promise.resolve([1, 2, 3]);
p.then((value) => {
    console.log(value);//success
}, (value)=> {
    console.log(value); //not called
})
  • 对promise resolve
const p1 = Promise.resolve(true);
const p2 = Promise.resolve(p1);
p2.then(value => {
    console.log(value);
})

3、Promise.reject(reason)

该方法返回一个用reason拒绝的promise。

语法

Promise.reject(reason)

参数reason是被拒绝的原因。

描述 Promise.reject返回一个被拒绝的Promise。使用Error实例的reason对调试和选择性错误捕捉很有帮助。

示例

Promise.reject('Testing')
    .then((reason) => {
        console.log(reason);// not called
    }, (reason) => {
        console.log(reason);//Testing
    })
    
Promise.reject(new Error('failed'))
.then((reason) => {
    console.log(reason);// not called
}, (reason) => {
    console.log(reason);//Testing
})

预览:

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.0-alpha.9