promise解决回调地狱(callback hell)
- 具体参考 阮一峰,ES6标准入门
- 在我们需要对一个异步操作进行频繁的调用的时候,且要保证一步操作的顺序,可能会出现
- 回调地狱(callback)的情况 例如:
var fs = require('fs')
fs.readFile('../data/a.txt','utf8',function (err,data) {
if (err) {
throw err
}
console.log(data)
fs.readFile('../data/b.txt','utf8',function (err,data) {
if (err) {
throw err
}
console.log(data)
fs.readFile('../data/c.txt','utf8',function (err,data) {
if (err) {
throw err
}
console.log(data);
})
})
})
解决这个问题让我们的代码看起来更加直观,我们可以用promise 解决这个问题
小栗子
var p1 = new Promise(function (resolve,reject) {
fs.readFile('../data/a.txt','utf8',function (err,data) {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
var p2 = new Promise(function (resolve,reject) {
fs.readFile('../data/b.txt','utf8',function (err,data) {