什么是异步操作
- 在JavaScript中,异步行为通常是指那些不会立即完成的操作,比如网络请求、文件操作或任何需要等待的操作。为了管理这种异步行为,JavaScript 提供了几种机制,其中 Promise 是非常核心的一个。
异步操作的示例
- 如果你不知道什么是异步操作,你可以看这个例子:
function operate1() {
// http 发出请求;等待回复
....
console.log("operate1 finished")
}
function operate2() {
// http 发出请求;等待回复
....
console.log("operate2 finished")
}
operate1();
operate2();
- 上述描述了两个函数
operate1()
和operate2()
operate1()
和operate2()
中都定义了两个网络请求,而网络请求取决于网络情况、服务器那边处理的速度,所以会导致最终这两个函数的结果不知道
什么是 promise
Promise
是一个 代表了异步操作最终完成或失败的对象。它可以让你组织异步代码的方式更加清晰,避免所谓的“回调地狱”。这里面涉及了三个概念:- promise 是一个对象
- 这个对象代表了异步操作的 ”完成” 或者 “失败”
为什么要用 promise
-
一言以蔽之:为了将那些异步的程序,按照顺序地执行。
-
举个简单的例子,你今天要做以下的事情:
- 给 A 发送微信消息,
- 等 A 回复之后你要约 B 吃饭的时间。
- 等 B 告诉你具体时间之后你需要去洗车
- 洗碗
- 刷盘子
-
你给 A 发了消息之后他一直没回复。这时候如果你是用
同步
的方式在执行。那在 A 回消息之前(这个过程可能要两个小时),你无法执行后面的步骤;这时候用程序表示:// 同步操作的程序 执行一天的事情(){ 1. 给 A