ES6----promise方法解决回调地狱问题

ES6–promise方法解决回调地狱问题

要解决回调地狱问题,首先要了解回调地狱的产生是由于早期的javascript只支持回调函数来表现异步操作完成,由于业务逻辑复杂时,就会出现一个串联多个异步操作的问题,而且通常需要多次嵌套回调函数,最经典的比如ajax请求,如下面代码:

let oid 
        function one(){
   
            $.ajax({
   //第一个ajax请求,拿到data中的id
                url:'http://127.0.0.1:8888/customer/findAll',
                method:'get',
                success:function(r){
   
                    // console.log(r.data[0].id)
                    oid = r.data[0].id
                    function two(){
   
                        $.ajax({
   //第二个ajax请求,将第一个ajax请求拿到的id给第二个ajax
                            url:'http://127.0.0.1:8888/customer/findCustomerById?id='+oid,
                            method:'get',
                            success:function(r){
   
                   
                            }
                        })
                    }
                }
            })
        }
        one()

以上第二个ajax请求需要依赖第一个ajax请求得来的id,这时候就要将第二个ajax套在第一个ajax执行成功的方法里面,如果业务逻辑复杂,一层一层依赖多,就会出现多层嵌套关系,也就形成了多次回调,称为回调地狱。而随着代码量增加,嵌套回调的代码出错调bug困难,维护起来十分痛苦。

于是由社区最早提出并且实现了promise方法用来解决回调地狱问题,最终成为了es6新增promise的范本。

如下代码,想要读取三个txt文本文件的内容,但由于javascript的单线程编程性质,所以读取顺序会不固定

		book.readFile("./1.txt",'utf-8',function(error,data){
   
            if(error){
   
                throw error;
            }
            console.log(data);
        
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值