【发布时间】:2021-09-25 02:30:45
【问题描述】:
我正在尝试理解 Promise 链接,我的印象是以下代码应该同步运行,因为我链接了“then”语句。为什么第 2 次和第 3 次数据获取异步运行。
console.log("Start Program")
console.log("Start Getting Data 1")
new Promise((succes) => {
setTimeout(()=>{
console.log("Got Data 1")
succes()},3000)
}
).then(()=>{
console.log("Start Getting Data 2")
setTimeout(()=>{console.log("Got Data 2")},3000)
}).then(()=>{
console.log("Start Getting Data 3")
setTimeout(()=>{console.log("Got Data 3")},3000)
})
console.log("End Program")
【问题讨论】:
-
你必须为你的第一个
.then中的每个.then返回一个新的承诺,再返回一个承诺 -
你的第二次超时只是在一定时间后记录一些东西,它不会解决任何承诺,对承诺链没有影响。
-
如果你实际获取数据,问题会更少,只需返回结果(正常功能应该如此)
标签: javascript asynchronous promise chain