promise

promise是什么?

1、主要用于异步计算
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3、可以在对象之间传递和操作promise,帮助我们处理队列

promise的三种状态:

pending 等待状态:创建Promise对象时的初始状态
fulfilled 成功状态: 成功时的状态
rejected 失败状态: 失败时的状态

promise解决了回调地狱的问题,不会导致难以维护,then也可以按照顺序执行

   let fs = require("fs");
    // 封装了一个read方法返回一个Promise的实例
    function read(filePath,encoding){
        return new Promise((resolve,reject)=>{
            fs.readFile(filePath,encoding,(err,data)=>{
                if(err) reject(err);
                resolve(data);            
            })
        })
    }
    fs.read("1.txt","utf-8").then(data=>{
        fs.read(data,"utf-8");  // data相当于于callback的成功回调
    }).then(data=>{                 
        fs.read(data,"utf-8");
    });
    

什么是回调地狱?

做前端开发,处理异步请求的情况,在请求到的成功回调函数里继续写函数,长此以往形成了回调地狱

    let fs = require("fs");
    fs.readFile("1.txt","utf-8",function(err,data){ // 读取文件1.txt
        console.log(data);  // 2.txt
        fs.readFile(data,"utf-8",function(err,data){    // 读取文件2.txt
            console.log(data);  // 3.txt
            fs.readFile(data,"utf-8",function(err,data){    // 读取文件3.txt
                console.log(data);  // 一层一层又一层
            })
        })
    })

promise详解 掘金网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值