【Nodejs笔记】nodejs入门简介_Promise(3)
Page content
async
- async函数的返回值是promise对象。
- promise对象的结果由async函数执行的返回值决定。
await
- await右侧的表达式一般为promise对象。也可以是其他值。
- await返回的是promise对象的成功的值。如果不是Promise对象直接是返回值。
- await必须写在async函数中。但是async可以没有await。
- await的promise失败了,就会抛出异常,需要用try catch捕获。
简单实例
//普通读取文件
fs.readFile('./test1.txt', (err, data1) => {
if (err) {
console.log(err);
} else {
fs.readFile('./test2.txt', (err, data2) => {
if (err) {
console.log(err);
} else {
fs.readFile('./test3.txt', (err, data3) => {
if (err) {
console.log(err);
} else {
let result = data1 + '\r\n' + data2 + '\r\n' + data3;
console.log(result);
}
});
}
});
}
});
//结合Promise和 async await
function readTest1(){
return new Promise(function (resolve, reject) {
fs.readFile('test1.txt', (err, data) => {
if (err) reject(err);
resolve(data);
});
})
}
function readTest2(){
return new Promise(function (resolve, reject) {
fs.readFile('test2.txt', (err, data) => {
if (err) reject(err);
resolve(data);
});
})
}
function readTest3(){
return new Promise(function (resolve, reject) {
fs.readFile('test3.txt', (err, data) => {
if (err) reject(err);
resolve(data);
});
})
}
async function main(){
let test1 = await readTest1();
let test2 = await readTest2();
let test3 = await readTest3();
console.log(test1.toString());
console.log(test2.toString());
console.log(test3.toString());
}
main();
欢迎大家的意见和交流
email: li_mingxie@163.com