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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjscy666/article/details/72790841

只要做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(),完美的解决了上文中出现的加载不及时导致的问题!同异步的妙用还有很多,有兴趣的童鞋可以自己去研究下!

猜你喜欢

转载自blog.csdn.net/zjscy666/article/details/72790841