web填坑系列之资源同异步加载

只要做it的难免遇到坑,今天这篇文章来为大家讲述下同异步加载数据的坑!先来说异步吧,说起异步大家最熟悉的是ajax了吧,当你用ajax请求数据时,页面会局部刷新,但是有时候页面虽然刷新了,但是我们还是拿不到我们想要的结果,为啥呢?原因就在异步加载中!看下面的例子

       var fs= require('fs');

fs.writeFile(filename,data,[options],callback);

这是node中fs文件输出文件流,默认异步,一般情况下不会有问题,可以在指定路径下创造文件,但是有时候我们需要执行其他命令,例如

var fs= require('fs');

fs.writeFile(filename,data,[options],callback);

callback();


我们在fs.writeFile下面增加了一个callback(),那么我们会在writeFile异步请求完成后,调用callback().。这里有点要注意,异步请求完成,不代表数据已经拿到渲染完成

,有可能在渲染数据的时候,执行callback(),导致得不到自己想要的结果!

下面给出解决方案,改成同步,

var fs= require('fs');

fs.writeFileSync(filename,data,[options],callback);

callback();


同步会在执行完writeFileSync后,才执行callback(),注意这里的执行完是指拿到数据,并且执行完writeFileSync自身回调函数,完成文件的输出写入工作,

再执行callback(),完美的解决了上文中出现的加载不及时导致的问题!同异步的妙用还有很多,有兴趣的童鞋可以自己去研究下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值