promise
var fs = require('fs')
//promise不是异步,但往往在里面封装 异步API
var p = new Promise(function (res, rej) {
fs.readFile('./00.txt','utf8', function (err, data) {
if (err) {
rej(err)
} else {
//pending 状态改变为 resolved
res(data)
}
})
})
var p1 = new Promise(function (res, rej) {
fs.readFile('./01.txt','utf8', function (err, data) {
if (err) {
rej(err)
} else {
res(data)
}
})
})
//当p 成功/失败了 然后(then) 做指定的操作,then方法接受的function 就是容器中的 res 函数
p
.then(function (data) {
console.log(data)
return p1 //p1 中的res函数就是下一个then方法的第一个参数
}, function (err) {
console.log('读取文件失败')
})
.then(function (data) {
console.log(data)
}, function (err) {
console.log('读取文件失败')
})
封装 promise
var fs = require('fs')
function pReadFile(path) {
return new Promise(function (res, rej) {
fs.readFile(path,'utf8', function (err, data) {
if (err) {
rej(err)
} else {
res(data)
}
})
})
}
pReadFile('./00.txt')
.then(function (data) {
console.log(data)
return pReadFile('./01.txt')
}, function (err) {
console.log('读取文件失败')
})
.then(function (data) {
console.log(data)
}, function (err) {
console.log('读取文件失败')
})
var fs = require('fs')
var p = new Promise(function (res, rej) {
fs.readFile('./00.txt','utf8', function (err, data) {
if (err) {
rej(err)
} else {
//pending 状态改变为 resolved
res(data)
}
})
})
var p1 = new Promise(function (res, rej) {
fs.readFile('./01.txt','utf8', function (err, data) {
if (err) {
rej(err)
} else {
//pending 状态改变为 resolved
res(data)
}
})
})
//当p 成功了 然后(then) 做指定的操作,then方法接受的function 就是容器中的 res 函数
p
.then(function (data) {
console.log(data)
return p1 //p1 中的res函数就是下一个then方法的第一个参数
}, function (err) {
console.log('读取文件失败')
})
.then(function (data) {
console.log(data)
}, function (err) {
console.log('读取文件失败')
})