gpt4 book ai didi

javascript - 将附加参数传递给回调函数

转载 作者:行者123 更新时间:2023-11-28 18:43:39 25 4
gpt4 key购买 nike

我有一个非常简单的函数,可以使用 HTML 5 FileReader 读取文件:

var reader = new FileReader();
var currentFileType = file.type;
reader.onloadend = readCompleted;
reader.onerror = fail;

reader.readAsArrayBuffer(file);

readCompleted 回调函数如下所示:

    function readCompleted(evt) {
if (evt.target.readyState != FileReader.DONE) {
return;
}

// The binary data is the result.
var requestData = evt.target.result;

// SOME MORE CODE HERE
}

事情是默认情况下传递“evt”参数。如何向此回调函数传递一个附加参数以使 currentFileType 变量可用?我希望这个函数签名看起来像这样: function readCompleted(evt, fileType) {//code here} 并以某种方式将 currentFileType 传递给它。

最佳答案

您可以使用Function.bind在将参数分配给 onloadend 之前将参数绑定(bind)到函数。

例如:

var a = function() { console.log(arguments); }
var b = a.bind(null, 123)
b('abc') // -> [123, "abc"]

就您而言,它将是:

reader.onloadend = readCompleted.bind(null, file.type);

readCompleted应具有以下签名:

function readCompleted(fileType, evt) { ... }

关于javascript - 将附加参数传递给回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35730440/

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