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
二维码
文章目录
关闭
Baamon
black market deep escrow market darknet