对于复杂的场景,都是一个回调里面调另一个回调,这个回调里面又套另一个回调,这样就形成了回调地狱,代码量比较大,无法读了,这时要怎么办呢
node 8可以写异步像写同步一样;
readFile怎么改成类似同步的书写
const fs= require('fs');
//采用promisify,而不是通过回调同步返回值或传递结果,我们可以返回一个Promise,我们将来会返回一些值或错误。promisify就是把回调函数的第一个参数是error的这种类型的方法变成为一个promisify函数
const promisify=require('util').promisify;
//readFile是异步的函数,第一个参数是路径,第二个是参数是回调函数,可以把这种函数定义为promisify函数
const read = promisify(fs.readFile);
// read('./35_fs_promisify.js')
// .then(data=>{
// console.log(data.toString());
// })
// .catch( ex => {
// console.log(ex);
// })
async function test() {
//,调用read方法,因为采取的是同步,所以用变量表示
try{
const content = await read('./35_fs_promisify.js');
console.log(content.toString());
} catch(ex){
console.log(ex);
}
}
test();
文件内容就被读出来了