今天搞这个“einprogress”可把我折腾坏,弄一整天,感觉头发都快掉光。不过总算是弄明白,赶紧记录一下,省得以后再踩坑。
啥玩意儿?
我是在弄一个文件复制的功能。你知道的,就是那种把文件从一个地方搬到另一个地方。我用的是移动硬盘,平时都好好的,结果今天突然抽风,复制到一半就弹出一个框框,说什么“一个意外错误使您无法复制该文件”。我当时就懵,啥玩意儿?
折腾过程:各种尝试
我第一反应就是重启,毕竟“重启解决99%的问题”嘛结果,重启还是不行,错误依旧。然后我就开始在网上搜,看看有没有遇到同样问题的朋友。结果搜到一堆乱七八糟的,什么设置socket为阻塞,什么connect返回115,需要判断socket是否可写……看得我头都大,这都啥跟啥!
不过也算是有点收获。我解到这个“einprogress”好像跟网络连接有关系。虽然我这是复制文件,跟网络没啥直接关系,但说不定有什么关联?
于是我就开始琢磨,能不能搞个进度条,看看复制到哪一步?这样至少能知道问题出在哪里。
找到帮手:NProgress
我又是一顿搜,发现一个叫NProgress的玩意儿。看介绍说,这东西是个轻量级的进度条组件,用起来很简单。我就想,这不正是我需要的嘛
然后我就开始照着网上的教程,一步一步地把NProgress加到我的代码里。别说,这玩意儿还真挺好用的。当我开始复制文件的时候,它就显示一个进度条,一点一点地往前走。当我复制完成的时候,它就自动消失。这感觉,真爽!
最终解决:虚惊一场
加上进度条之后,我再次尝试复制文件。神奇的事情发生,这回居然成功!没有再弹出那个烦人的错误提示。我当时那个激动,差点跳起来。
后来我仔细想想,问题可能根本就不是出在“einprogress”上,估计就是移动硬盘接触不良或者系统卡一下。我加的那个进度条,也没起到啥实质性的作用,就是让我心里踏实点。不过这回折腾也让我学到一个新东西,以后再遇到类似的问题,至少知道该怎么弄。
今天这一天虽然有点累,但也挺有收获的。以后再遇到问题,不能慌,得一步一步地分析,总能找到解决办法的。好,今天的分享就到这里,希望对大家有所帮助。