Promise链式解决嵌套回调的问题

js的嵌套回调一直是一个棘手的问题,

今天在网上看到一个例子,手动修改了下,实现Promise链式解决嵌套回调的问题。



// 返回递增数值
const GET = (e) => ++e;

// 开始第一次
const A1 = new Promise((resolv, reject) => {

setTimeout(() => {

let someThing = GET(0)
console.log(`这是${someThing}次`)
resolv(someThing)

}, 2000);

})

// 开始第二次
.then((res) => {

return new Promise((resolv, reject) => {

setTimeout(() => {
let someThing = GET(res)
console.log(`这是${someThing}次`)
resolv(someThing)
}, 2000);

})


})

// 开始第三次
.then((res) => {

return new Promise((resolv, reject) => {

setTimeout(() => {
let someThing = GET(res)
console.log(`这是${someThing}次`)
resolv(someThing)
}, 2000);

})


})



 

Promise 确实解决了回调地狱问题,但是 Promise 本身还是存在 then 的链式调用问题,所以终极方案可以使用 async...await,用同步的方式来书写异步代码

回调函数比较多的话,还是用asnyc await比较好

版权声明:
作者:jenkin
链接:https://blog.ijenkin.top/index.php/2021/11/21/promiselsjjqthddwt/
来源:Jenkin
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录