2.10JavaScript引用类型之期约(Promise)

1.Thenable接口

function then(onFulfilled) {
  //函数体
}

function then(onFulfilled, onRejected) {
  //函数体
}

2.Promise类

Promise 类就实现了 Thenable 接口。

以下只介绍 then 实例方法,其它方法具体参考Promise

function then(onFulfilled) {
  //函数体
}

function then(onFulfilled, onRejected) {
  //函数体
}

3.Promise对象状态

待定(pending)Promise 对象的初始状态。在 待定(pending) 状态下,Promise 对象可以 落定(settled) 为表示异步操作成功的 兑现(fulfilled) 状态 或 表示异步操作失败的 拒绝(rejected) 状态。

Promise 对象的状态不一定非要脱离 待定(pending) 状态从而落定为 兑现(fulfilled)拒绝(rejected) 状态。Promise 对象的状态如果一旦 落定(settled)兑现(fulfilled)拒绝(rejected) 状态,Promise 对象的状态就不再改变,不可从 兑现(fulfilled)拒绝(rejected) 状态逆转为 待定(pending) 状态。

状态描述
pending(待定)表示异步操作尚未开始或正在执行中
fulfilled(兑现),又称为resolved(解决)表示异步操作成功
rejected(拒绝)表示异步操作失败
let p = new Promise(() => {});
setTimeout(console.log, 0, p);

//输出
Promise { <state>: "pending" }
let p = new Promise((resolveFunc) => resolveFunc(6));
setTimeout(console.log, 0, p);

//输出
Promise { <state>: "fulfilled", <value>: 6 }
let p = new Promise((undefined, rejectFunc) => rejectFunc(6));
setTimeout(console.log, 0, p);

//输出
Promise { <state>: "rejected", <reason>: 6 }

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/21652.html

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2020年9月9日 22:52
下一篇 2020年9月11日 11:30

相关推荐

  • 1.4JavaScript语言的类型(Type)

    JavaScript 语言有两种类型:原始类型(Primitive Type) 和 引用类型(Reference Type)。 原始类型包括:大整数类型(不可变的)、数值类型(不可变的)、布尔类型(不可变的)、字符串类型(不可变的)、符号类型(不可变的)、Undefined类型(不可变的)、Null类型(不可变的)。 …

  • 2.1JavaScript语言的ES模块(Module)

    ES 模块用于在浏览器环境和服务器环境中使用。 模块就是以 .js 为扩展名的 JavaScript 文件。 普通脚本文件内的顶级的成员对其它脚本文件来说是公开(public)的全局上下文,而模块文件内的顶级的模块成员对其它模块文件来说都是私有(private)的,所以首先需要在模块中将它们显式导出,然后在其它模块中显…

  • 1.1JavaScript语言的注释(Comment)

    1.行(Line)注释 行注释使同一行中紧跟 // 后的所有文本都成为注释。 2.块(Block)注释 块注释使 /* 和 */ 之间的无论是单行还是多行的所有文本都成为注释。 3.Hashbang注释 Hashbang 注释用于当 JavaScript 脚本文件直接在 shell 中运行时以指定 JavaScript…

发表回复

登录后才能评论