Promise解决回调地狱
一、Promise是什么Promise 其实是异步编程的一种解决方案.简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,可以从改对象获取异步操作的消息。可以用来解决回调地狱的问题。二、Promise的简单使用我们使用new来构建一个Promise Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,
·
一、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) })
更多推荐
已为社区贡献1条内容
所有评论(0)