es6(回调地狱)

2017-10-24  本文已影响233人  余生筑

如果有多个异步操作,就存在一个流程控制的问题:确定操作执行的顺序,以后如何保证遵守这种顺序。

比如

function async(arg, callback) {
  callback(arg * 2);
}
function final(value) {
  console.log('完成: ', value);
}

问题:如何借助async()得到128?

async(1,function(data)
        { 
            async(data,function(data)
            {
                async(data,function(data)
                {
                    async(data,function(data)
                    {
                        async(data,function(data)
                        {
                            async(data,function(data)
                            {
                                async(data,function(data)
                                {
                                    final(data)
                                })
                            })
                        })
                    })
                })
            })
        })//完成:  128
let async=(data)=>new Promise((resolve,reject)=>{           
                return resolve(data*2)
            })

        let final=value=>{
            console.log('完成: ', value);
        }
        async(1)
        .then(async)
        .then(async)
        .then(async)
        .then(async)
        .then(async)
        .then(async)
        .then(final);
上一篇下一篇

猜你喜欢

热点阅读