gpt4 book ai didi

javascript - 在没有事件监听器的情况下使用 readAsBinaryString()

转载 作者:行者123 更新时间:2023-11-28 02:12:34 24 4
gpt4 key购买 nike

您好,我正在使用 javascript 上的文件 API 制作我的第一个项目,这是一个简单的程序,它将文件作为输入并在 Div 上显示其内部代码。我想知道是否有办法让这段代码在没有事件监听器和事件处理程序的情况下工作。我认为这是主要问题,但我不知道它是如何工作的:

document.getElementById('byte_content').textContent = reader.readAsBinaryString(blob);

所有 mi 代码都在这里:

<!DOCTYPE html>
<head>
<html>
<script>
function convert(){
var files = document.getElementById('input').files;
file = files[0];
var reader = new FileReader();
var blob = file.slice(0,20);
document.getElementById('byte_content').textContent = reader.readAsBinaryString(blob);
}
</script>
</head>
<body>

<input type="file" id="input" name="file" />

<button onclick=convert()>Run script</button>

<div id="byte_range"></div>

</body>

我见过几个例子,比如 this one但它们都使用与此类似的代码:

 event.target.result

最佳答案

你不能。 FileReader异步读取文件。这意味着读取发生在后台,并在未来某个未指定的时间点完成;它不会立即返回结果。检索结果的唯一方法是在事件完成时监听该事件并执行您想要执行的代码then。这根本不是问题,它只是要求您将代码放入回调/事件处理函数中,而不是在 readAsBinaryString 调用之后按照程序进行。

而不是:

document.getElementById('byte_content').textContent = reader.readAsBinaryString(blob);

你会:

reader.onload = function (event) {
document.getElementById('byte_content').textContent = event.target.result;
};
reader.readAsBinaryString(blob);

这就是全部内容。

关于javascript - 在没有事件监听器的情况下使用 readAsBinaryString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16851885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com