什么是同步,什么是异步
同步:火车票排队, 现金零钱
1有=完成,
2还没找到=右边腾地方,
3有=完成。2找到了=完成
异步:火车票排队, 带身份证
1爸爸有=完成,
2妈妈还没找到=右边腾地方,
3儿子等妈=我得等妈妈
2妈妈有了=完成,
3儿子用了妈的才完成
如果把父母的事情放在同步上就有了严重的问题
同步:火车票排队,
1爸爸有=完成,
2妈妈还没找到钱=右边腾地方,
3儿子等妈有钱=完成不了。
此时火车站关门了,你妈妈找到了,但是他们下班了结论:如果你妈妈说等我5分钟!或许就能买到票了。
它的价值就是:支持链式调用!还可以解决回调地狱
如下:问题所在就是那个定时!我们只需要找到 谁
是你返回为空的源头
等你完成后我再下一步
你准备做好的函数B,then一下,但是有形参的。因为res返回的只有对象
then出来的就是成品
var a = document.querySelector("#a")
a.addEventListener(("click"), () => {
B()
})
function A() {
return new Promise((res, rej) => {
setTimeout(() => {
res(1)
}, 3000)
})
}
function B() {
var a = A()
a.then((x)=>{
console.log(x)
})
}
async 和 await
跟上次一模一样,但是每次then
也太麻烦了。能不能简单点,别每次都then呢?
其实很简单。就是选中你准备then的那小子,然后给外部的async相应一下就行了。
var a = document.querySelector("#a")
a.addEventListener(("click"), () => {
B()
})
function A() {
return new Promise((res, rej) => {
setTimeout(() => {
res(1)
}, 3000)
})
}
async function B() {
console.log(await A())
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。