vue3之promise
1.promise是什么?1.解决异步嵌套的问题 2.解决回调问题(函数里面有函数 保证执行顺序)3.链式的思想连接其他异步异步的执行顺序是不确定的…容器内部有3种状态:(状态不可回退)1.Pending对象创建的初始状态(悬而未决)2.Fullfilled成功(执行)3.Rejected失败2.使用//读文件的操作const fs=require('fs');const path=require
·
1.promise是什么? 1.解决异步嵌套的问题 2.解决回调问题
(函数里面有函数 保证执行顺序)
3.链式的思想连接其他异步
异步的执行顺序是不确定的…
容器内部有3种状态: (状态不可回退)
1.Pending 对象创建的初始状态(悬而未决)
2.Fullfilled 成功(执行)
3.Rejected 失败
2.使用
//读文件的操作
const fs=require('fs');
const path=require('path');
let p=new Promise((resolve,reject)=>{
fs.readFile((err,data)=>{
if(err){
reject(err);//输出错误
}
resolve(data);//输出数据
});
});
p.then((data)=>{
console.log(data.toString());
}).catch((err)=>{
console.log(err);
});//拿到promise对象操作数据,如果有异常执行catch里面的
3.promise是链式的(data的数据可以.then向下传递 )(在中间出错不会执行后面的)
//读文件的操作
const fs=require('fs');
const path=require('path');
let ps=new Promise((resolve,reject)=>{
fs.readFile(path.join(__dirname,'a.txt'),(err,data)=>{
console.log(data.toString());
if(err){
reject()
}
resolve(data)
});
}).then((data)=>{
new Promise((resolve,reject)=>{
fs.readFile(path.join(__dirname,'b.txt'),(err,data)=>{
console.log(data.toString());
if(err){
reject()
}
resolve(data)
});
});
}).then((data)=>{
new Promise((resolve,reject)=>{
fs.readFile(path.join(__dirname,'c.txt'),(err,data)=>{
console.log(data.toString());
if(err){
reject()
}
resolve(data)
});
});
}).then((data)=>{
new Promise((resolve,reject)=>{
fs.readFile(path.join(__dirname,'d.txt'),(err,data)=>{
console.log(data.toString());
if(err){
reject()
}
resolve(data)
});
});
}).catch((err)=>{
console.log(err);
});
// fs.readFile(path.join(__dirname,'b.txt'),(err,data)=>{
// console.log(data.toString());
// });
// fs.readFile(path.join(__dirname,'c.txt'),(err,data)=>{
// console.log(data.toString());
// });
4.es6表达多个传入任意多个参数
let func=(...args)=>{
//调用其他函数也可以
funcA(...args);
}
5.优化 直接return 一个函数
封装一个函数掉用promise
//读文件的操作
const fs=require('fs');
const path=require('path');
let readFile=(...args)=>{
return new Promise((resolve,reject)=>{
fs.readFile(...args,(err,data)=>{
console.log(data.toString());
if(err){
reject()
}
resolve(data)
});
})
}
readFile(path.join(__dirname,'a.txt')).then((data)=>{
return readFile(path.join(__dirname,'b.txt'))
}).then((data)=>{
return readFile(path.join(__dirname,'d.txt'))
}).catch((err)=>{
console.log(err);
});
6.promise加强 多个异步放在一个promise(自动形成链路 执行有顺序 等待结果后才返回)
Promise.all([readFile(path.join(__dirname,'a.txt')),
readFile(path.join(__dirname,'b.txt')),
readFile(path.join(__dirname,'c.txt'))
]).then(([data1,data2,data3])=>{
console.log(data1.toString());
console.log(data2.toString());
console.log(data3.toString());
});
更多推荐
已为社区贡献5条内容
所有评论(0)