javascript - 函数参数中的事件

标签 javascript function events

我是 javascript 的新手,我正在尝试通过查看我觉得有趣的在线项目的代码来自学一些 javascript。我正在浏览 3D 查看器的代码 ( source )。它允许您拖放要查看的 3D 数据文件。在代码的 drop bit 中(如下所示),有几处似乎不清楚:

  1. reader.onload = function (event) ... 不确定这里的“事件”是什么。
  2. reader.readAsText(file);... 不确定为什么这样做,因为 reader.readAsBinaryString(file);之前已经调用过。

在此先感谢各位 :)。

    function onFileDrop(evt) {

        evt.stopPropagation();
        evt.preventDefault();

        var file = evt.dataTransfer.files[0]; 

        var splits = file.name.split('.');

        if (splits[splits.length - 1] == 'json') {

            var reader = new FileReader();

            //reader.onerror = errorHandler;
            //reader.onprogress = updateProgress;
            //reader.onabort = 
            //reader.onloadstart = 
            //reader.onload = 

            reader.readAsBinaryString(file);

            reader.onload = function (event) {

                var meshEntityList = JSON.parse(event.target.result);

                createScene(meshEntityList);
            };

            reader.onerror = function (event) {
                alert('Cannot read file!');
            };

            reader.readAsText(file);
        }
    }

最佳答案

  1. reader 被实例化并给出一个二进制文件来读取。如果成功,它会将其退出代码作为“事件”传递并处理该文件。如果失败,它会将错误代码作为“事件”传递并显示错误。这里的“事件”一词是任意的。

  2. 由于 javascript 的异步特性,它看起来很奇怪。 onload 和 onerror 是事件处理程序。如果 reader.readAsText(file);语句紧跟在 reader.readAsBinaryString(file) 之后;语句,并且它们都出现在事件处理程序之后,这可能更有意义,但它的行为完全相同。如果这两个语句都失败,则会触发错误,但如果其中一个成功,则会触发 onload。

关于javascript - 函数参数中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079997/

相关文章:

python - 为什么这个数组的值在作为参数传递给函数时会发生变化?

javascript - 是否有事件可以检测用户何时与页面交互?

javascript - Node : One Global EventEmitter or every module it's own?

javascript - 我如何 promise 原生 XHR?

javascript - 递增字符串中包含的特定数字

c++ - 访问 vector 元素的成员函数时发生访问冲突

java - JButtons 没有正确显示 borderlayout,还有向按钮添加 actionListener 的问题

javascript - 将单独的 CSS 和 JS 文件包含到标题中,或者将所有代码包含在一个 CSS 和一个 JS 文件中?

javascript - 从缓存中重新加载 iframe

python :嵌套