回调地狱 promisify

对于复杂的场景,都是一个回调里面调另一个回调,这个回调里面又套另一个回调,这样就形成了回调地狱,代码量比较大,无法读了,这时要怎么办呢

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();

文件内容就被读出来了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值