亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

怎么 同步取得 fileReader onload 處理的數據

怎么 同步取得 fileReader onload 處理的數據

慕俠2389804 2018-08-17 14:09:07
.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 是全局變量};
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

可以用 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})


查看完整回答
1 反對 回復 2018-09-17
  • 1 回答
  • 0 關注
  • 16002 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號