[英]Javascript code refactoring
我有下面的代码正在工作
var exif = function(exifObject) {
alert(exifObject.Orientation);
}
$(this).fileExif(exif);
问题是,我需要$(this).fileExif(exif)
行之后的警报值。
因此,我尝试执行以下操作:
function getOrientation(exifObject){
return(exifObject.Orientation);
}
getOrientation($(this).fileExif());
这是行不通的。 我怎样才能在$(this).fileExif(exif)
行之后获得警报值?
附加信息
console.log(exifObject)
返回一个带有属性数组的对象,例如console.log(exifObject)
Orientation
。
$(this)
包装在以下代码中:
$('body').on('change', '#imgFile', function(event) {
所以它是一个输入类型文件。
您正在将exif
(这是一个函数)传递给fileExif
函数。 这是一个事实,即函数是JavaScript中的一流对象,并且在这种情况下, exif
是“回调”函数。 也就是说,当fileExif
函数完成时,它将结果传递给exif
函数,然后调用该函数。
在执行方面, alert
将在fileExif
函数之后调用。 但是,如果您非常希望在函数之后编写代码,则可以在传递函数时声明该函数:
$(this).fileExif(function(exifObject) {
alert(exifObject.Orientation);
});
但是,这可能不像原始的那样清晰。
我只找到一个用于jQuery的fileExif插件。 这里是来源 。 该插件使用本机FileReader 。 FileReader异步加载文件。 你有两种方法。 首先-修改插件代码并使其同步(不好的主意)。 用asycn风格编写代码(最佳实践)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.