dom*_*ato 6 javascript callback onload filereader
我有这个功能:
function doStuff(range, file) {
var fr = new FileReader();
var hash = '';
fr.onload = function (e) {
var out = "stuff happens here";
hash = asmCrypto.SHA256.hex(out);
return hash;
};
fr.readAsArrayBuffer(file);
return hash;
}
Run Code Online (Sandbox Code Playgroud)
现在,该函数在onload事件完成之前完成,因此doStuff总是返回"".我认为回调是我需要的,但我是javascript的新手,在这种情况下我无法理解如何实现它.
Vig*_*thu 12
使用File Reader读取文件是异步操作.将您的逻辑放在onload
文件阅读器的功能中.
function doStuff(range, file) {
var fr = new FileReader();
fr.onload = function (e) {
var out = "stuff happens here";
hash = asmCrypto.SHA256.hex(out);
/* Place your logic here */
};
fr.readAsArrayBuffer(file);
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以传递一个回读函数,该函数将在读取文件后执行.
function doStuff(range, file, callback) {
var fr = new FileReader();
fr.onload = function (e) {
var out = "stuff happens here";
hash = asmCrypto.SHA256.hex(out);
/* Assuming callback is function */
callback(hash);
};
fr.readAsArrayBuffer(file);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7603 次 |
最近记录: |