Javascript 读卡器加载后获取值

Javascript 读卡器加载后获取值,javascript,Javascript,警报中未定义var图像:(请帮助,非常感谢 handleBeforeUpload (file, event) { var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = (function () { var f = reader.result; }); var image = f; alert(image) var photo = {uri: i

警报中未定义var图像:(请帮助,非常感谢

handleBeforeUpload (file, event) {
   var reader = new FileReader();
   reader.readAsDataURL(file);
   reader.onload = (function () {
     var f = reader.result;
   }); 

   var image = f;
   alert(image)

   var photo = {uri: image}

您的f变量在onload函数回调的范围内。请在该函数之外定义它,您可以在该函数中定义读取器变量,这样它就可以在handleBeforeUpload函数的范围内使用

handleBeforeUpload (file, event) {
   var reader = new FileReader();
   var photo = null;
   reader.readAsDataURL(file);
   reader.onload = (function () {
     f = reader.result;
     photo = { uri: f }
   }); 
}

response null:(如果在f=reader.result之后,尝试获取console.log,数据显示,但警报为null(我认为需要使用承诺?是的!您正在调用异步函数,并且在调用onload回调之前调用了警报)。检查更新的答案,我在回调本身中添加了console.log,以便您可以检查consoleconsole.log(f)中的实际文件对象;返回数据,但我不知道如何保存此数据,如果您可以生成正确的版本,请稍候!可能重复的