一、Promise是什么

Promise 其实是异步编程的一种解决方案.简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,可以从改对象获取异步操作的消息。可以用来解决回调地狱的问题。

二、Promise的简单使用

我们使用new来构建一个Promise Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject, 分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数,

let fs = require("fs");
// 1、是对象
// 2、内部有异步任务
// 3、状态
// resolve:成功状态
// reject:失败状态
let p1 = new Promise((resolve, reject)=>{
    fs.readFile("./a.txt","utf-8",(err,data)=>{
        if(err){
            // 失败时
            reject("读取失败");
        }else{
            // 成功时
            resolve(data);
        }
    });
});



let p2 = new Promise((resolve) => {
    fs.readFile("./b.txt","utf-8",(err,data)=>{
        if(!err){
            resolve(data);
        }
    });
});


let p3 = new Promise((resolve) => {
    fs.readFile("./c.txt","utf-8",(err,data)=>{
        if(!err){
            resolve(data);
        }
    });
});

Promise实例生成以后,可以用then方法指定resolved状态和reject状态的回调函数,在then方法中,你也可以直接return数据而不是Promise对象,在后面的then中就可以接收到数据了

p1.then(data=>{
    console.log(data)
    return p2;
}).then(data=>{
    console.log(data)
    return p3;
}).then(data=>{
    console.log(data)
})
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐