如果需要获取一个函数中异步操作的结果,则必须通过回调函数来获取
funtion fn (callback) {
//var callback = function (data) { console.log(data) }
setTimeout(function () {
var data = 'hello'
callback(data)
}, 1000)
}
//这样下面就可以获取到异步操作 setTimeout 中的结果
fn(function(data) {
console.log(data);
});
Promise 异步多重嵌套
var fs = require('fs')
var p1 = new Promise(function (resolve, reject) {
fs.readFile('./data/a.txt', 'utf8', function (err, data) {
if (err) {
reject(err); //失败调用
} else {
resolve(data); //成功调用
}
})
})
p1
.then(function (data) {
console.log(data); //对应上面的resolve
}, function(err){
console.log('读取文件失败了', err); //对应上面的reject
})