javascript - 怎么 同步取得 fileReader onload 处理的数据
PHPz
PHPz 2017-04-11 11:08:44
0
2
4319

大概流程是:

.on('xxxxx', function(){ fileReader.readAsArrayBuffer(file) //读完数据 触发 onload // 需要传递参数 {"sendData" : data} 到插件流程中 //onload是异步的,data不能同步取得。。 // 用 while(1){ if (data) break; } 的方式 会卡死 // sleep() 还是会 假死 或者 单线程耗CPU, setTimeout() 不执行。。 function sleep(ms) { var unixtime_ms = new Date().getTime(); while(new Date().getTime() < unixtime_ms + ms) {} } a = 0; setTimeout(function(){console.log('11111'); a = 1 }, 300); while ( a == 0 ){ console.log('0000'); sleep(100); } // promise 不能 阻止 顺序执行到插件流程 // 进入 一个插件 的处理流程 。。。 }); fileReader.onload = function(){ // 处理数据 // 得到 data = xxxx; data 是全局变量 };
PHPz
PHPz

学习是最好的投资!

reply all (2)
伊谢尔伦

楼主的需求描述得还不是很清楚

    大家讲道理

    可以用promise:

    function uploadFile(file) { return new Promise(function(resolve, reject) { let reader = new FileReader() reader.readAsArrayBuffer(file) reader.onload = function() { resolve(this.result) } }) } uploadFile(file).then(function(result){ //处理 result })
      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!