Node.js异步编程(二)
1. Promise
Promise出现的目的是解决Node.js异步编程中回调地狱的问题。
const fs = require('fs')
let promise = new Promise((resolve, reject) => {
fs.readFile('./1.txt', 'utf8', (err, data) => {
if (err != null) {
reject(err)
} else {
resolve(data)
}
})
})
promise.then(data => console.log(data))
.catch(err => console.log(err))
const fs = require('fs')
function p1 () {
return new Promise((resolve, reject) => {
fs.readFile('./1.txt', 'utf8', (err, data1) => {
resolve(data1)
})
})
}
function p2 () {
return new Promise((resolve, reject) => {
fs.readFile('./2.txt', 'utf8', (err, data2) => {
resolve(data2)
})
})
}
function p3 () {
return new Promise((resolve, reject) => {
fs.readFile('./3.txt', 'utf8', (err, data3) => {
resolve(data3)
})
})
}
p1().then((data1) => {
console.log(data1)
return p2()
}).then((data2) => {
console.log(data2)
return p3()
}).then(data3 => console.log(data3))