# Promise

Promise 对象表示异步操作最终的完成(或失败)以及其结果值。

# Constructor(fn)

创建一个新的 Promise 对象。该构造函数主要用于封装还没有添加 promise 支持的函数。

参数

名称 类型 必填 描述
fn ( resolve: (value: T) => void, reject: (reason: any | null) => void ) => void 在构造函数中执行的 function。

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# Constructor(fn)_1

创建一个新的 Promise 对象。该构造函数主要用于封装还没有添加 promise 支持的函数。

参数

名称 类型 必填 描述
fn (resolve: (value: T) => void) => void 在构造函数中执行的 function。

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# 实例方法

# then()

将一个兑现处理器和拒绝处理器附加到 Promise 上,并返回一个新的 Promise,解决为调用处理器得到的返回值,或者如果 Promise 没有被处理(即相关处理器 onFulfilled 或 onRejected 不是函数),则以原始敲定值解决。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# then(onFulfilled, onRejected?)_1

将一个兑现处理器和拒绝处理器附加到 Promise 上,并返回一个新的 Promise,解决为调用处理器得到的返回值,或者如果 Promise 没有被处理(即相关处理器 onFulfilled 或 onRejected 不是函数),则以原始敲定值解决。

参数

名称 类型 必填 描述
onFulfilled () => R 一个在此 Promise 对象被兑现时异步执行的函数。它的返回值将成为 then() 返回的 Promise 对象的兑现值。
onRejected Function | null 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# then(onFulfilled, onRejected?)_2

将一个兑现处理器和拒绝处理器附加到 Promise 上,并返回一个新的 Promise,解决为调用处理器得到的返回值,或者如果 Promise 没有被处理(即相关处理器 onFulfilled 或 onRejected 不是函数),则以原始敲定值解决。

参数

名称 类型 必填 描述
onFulfilled () => Promise<R> 一个在此 Promise 对象被兑现时异步执行的函数。它的返回值将成为 then() 返回的 Promise 对象的兑现值。
onRejected Function | null 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# then(onFulfilled, onRejected?)_3

将一个兑现处理器和拒绝处理器附加到 Promise 上,并返回一个新的 Promise,解决为调用处理器得到的返回值,或者如果 Promise 没有被处理(即相关处理器 onFulfilled 或 onRejected 不是函数),则以原始敲定值解决。

参数

名称 类型 必填 描述
onFulfilled (res: T) => R 一个在此 Promise 对象被兑现时异步执行的函数。它的返回值将成为 then() 返回的 Promise 对象的兑现值。
onRejected Function | null 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# then(onFulfilled, onRejected?)_4

将一个兑现处理器和拒绝处理器附加到 Promise 上,并返回一个新的 Promise,解决为调用处理器得到的返回值,或者如果 Promise 没有被处理(即相关处理器 onFulfilled 或 onRejected 不是函数),则以原始敲定值解决。

参数

名称 类型 必填 描述
onFulfilled (res: T) => Promise<R> 一个在此 Promise 对象被兑现时异步执行的函数。它的返回值将成为 then() 返回的 Promise 对象的兑现值。
onRejected Function | null 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# catch()

将一个拒绝处理回调函数附加到 Promise 上,并返回一个新的 Promise,如果回调被调用,则解决为回调的返回值,如果 Promise 被兑现,解决为其原始兑现值。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# catch(onRejected)_1

将一个拒绝处理回调函数附加到 Promise 上,并返回一个新的 Promise,如果回调被调用,则解决为回调的返回值,如果 Promise 被兑现,解决为其原始兑现值。

参数

名称 类型 必填 描述
onRejected () => R 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# catch(onRejected)_2

将一个拒绝处理回调函数附加到 Promise 上,并返回一个新的 Promise,如果回调被调用,则解决为回调的返回值,如果 Promise 被兑现,解决为其原始兑现值。

参数

名称 类型 必填 描述
onRejected () => Promise<R> 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# catch(onRejected)_3

将一个拒绝处理回调函数附加到 Promise 上,并返回一个新的 Promise,如果回调被调用,则解决为回调的返回值,如果 Promise 被兑现,解决为其原始兑现值。

参数

名称 类型 必填 描述
onRejected (res: any | null) => R 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# catch(onRejected)_4

将一个拒绝处理回调函数附加到 Promise 上,并返回一个新的 Promise,如果回调被调用,则解决为回调的返回值,如果 Promise 被兑现,解决为其原始兑现值。

参数

名称 类型 必填 描述
onRejected (res: any | null) => Promise<R> 一个在此 Promise 对象被拒绝时异步执行的函数。它的返回值将成为 catch() 返回的 Promise 对象的兑现值。

返回值

类型
Promise<R>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# finally(callback)

将一个处理器附加到 Promise 上,并返回一个新的 Promise,当原始 Promise 被解决时解决。无论 Promise 是否被兑现还是被拒绝,处理器都会在 Promise 敲定时被调用。

参数

名称 类型 必填 描述
callback Function 一个当 promise 敲定时异步执行的函数。它的返回值将被忽略,除非返回一个被拒绝的 promise。调用该函数时不带任何参数。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# resolve()

返回一个新的 Promise 对象,该对象以给定的值兑现。

返回值

类型
Promise<void>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# resolve(value)_1

返回一个新的 Promise 对象,该对象以给定的值兑现。

参数

名称 类型 必填 描述
value T | null 一个兑现的值。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# resolve(value)_2

返回一个新的 Promise 对象,该对象以给定的值兑现。

参数

名称 类型 必填 描述
value Promise<T> | null 一个 Promise。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# reject(value?)

返回一个新的 Promise 对象,该对象以给定的原因拒绝。

参数

名称 类型 必填 描述
value any | null 一个拒绝的原因。

返回值

类型
Promise<never>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# all(arr)

接受一个 Promise 可迭代对象作为输入,并返回单个 Promise。返回的 Promise 在所有输入的 Promise 都兑现时(包括传入的可迭代对象为空时)被兑现,其值为一个包含所有兑现值的数组。如果输入的任何 Promise 被拒绝,返回的 Promise 也会被拒绝,并返回第一个拒绝的原因。

参数

名称 类型 必填 描述
arr Array<Promise<T>> 一个 Promise 数组。

返回值

类型
Promise<Array<T>>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# race(arr)

接受一个 Promise 可迭代对象作为输入,并返回单个 Promise。返回的 Promise 与第一个敲定的 Promise 的最终状态保持一致。

参数

名称 类型 必填 描述
arr Array<Promise<T>> 一个 Promise 数组。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# any(arr)

接受一个 Promise 可迭代对象作为输入,并返回单个 Promise。返回的 Promise 在任何输入的 Promise 兑现时兑现,其值为第一个兑现的值。如果所有输入的 Promise 都被拒绝(包括传入的可迭代对象为空时),返回的 Promise 将以带有一个包含拒绝原因的数组的 AggregateError 拒绝。

参数

名称 类型 必填 描述
arr Array<Promise<T>> 一个 Promise 数组。

返回值

类型
Promise<T>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# allSettled(arr)

接受一个 Promise 可迭代对象作为输入,并返回单个 Promise。返回的 Promise 在所有输入的 Promise 都敲定时兑现(包括传入的可迭代对象为空时),其值为一个描述每个 Promise 结果的对象数组。

参数

名称 类型 必填 描述
arr Array<Promise<T>> 一个 Promise 数组。

返回值

类型
Promise<Array<PromiseSettledResult<T>>>

兼容性

Android uni-app x iOS uni-app x web uni-app x Android uni-app iOS uni-app web uni-app
3.9 x 4.0 x

# 参见

相关 Bug

# Bug & Tips

  • 目前 Promise 类型编译到 kotlin 为 io.dcloud.uts.UTSPromise
  • 编译到swift时暂不支持。但在uvue里因为iOS默认js驱动所以可以使用Promise