我正在编写一个简单的脚本来读取.txt文件。使它工作有点麻烦,现在我想升级它。基本上我正在寻找一个选项,在文件打开和读取之前暂停程序。我尝试使用while()等待某个变量进行更改,但是当暂停整个程序时 - 无法单击打开的文件。
HTML:
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
String inputDateString = vars.get("response time"); //in the format "2013-10-26 09:36:00 AM "
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd hh:mm:ss a ");
DateTime time = formatter.parseDateTime(inputDateString);
DateTime newtime = time.minusHours(6);
vars.put("newtime", newtime.toString());
使用Javascript:
<html>
<head>
</head>
<body>
<input type="file" id="fileInput">
<script src="1dn.js"></script>
</body>
</html>
答案 0 :(得分:-1)
好吧,如果你在函数中包含所有必须在打开和读取文件后必须执行的代码,它将被解析但在你调用函数之前不会被执行。
然后在回调结束时调用函数(在事件监听器的参数中给出的函数)。
编辑:对不起我放restOfCode()
的地方不清楚。它必须是内部 onload
回调。
您将无法在文件输入上删除事件侦听器,因为如果浏览器不是来自用户的操作,则浏览器实际上会阻止您访问任何客户端本地文件。这是一项防止恶意网站访问访问者的安全措施。文件未经他们同意。
结果:
var string;
window.onload = function() {
var fileInput = document.getElementById('fileInput');
// You need user input for the browser to allow you reading local files.
// This is a security measure to protect the user.
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var reader = new FileReader();
reader.onload = function(e) {
string = reader.result;
alert(string);
// At this point only you are sure your file is opened and read.
restOfCode();
}
// Open the file and start reading.
reader.readAsText(file);
});
}
// *** wait here until file is opened and read
// the function below is parsed but not executed, since it is not called
function restOfCode() {
//*** do some other stuff
}
答案 1 :(得分:-1)
您可以使用添加when
函数的库,或者如果您愿意,可以在纯JS中自己实现:
function when(conditionFunc, execFunc, interval) {
if (conditionFunc()) {
execFunc();
} else {
setTimeout(function() { when(conditionFunc, execFunc, interval);}, interval);
}
}
你可以read more about the function here。像这样使用它:
when(function() {
return string;
}, function() {
// do stuff
}, 500);
如果您希望在字符串更改时执行// do stuff
,只需将return string;
更改为将新字符串值与旧字符串值进行比较的条件。