gpt4 book ai didi

javascript - 回调函数的参数如何依赖于顺序?

转载 作者:行者123 更新时间:2023-12-03 11:09:22 28 4
gpt4 key购买 nike

假设我在 Javascript 中等待一个事件,我们将得到如下内容:

fileSystem.readFile('done', function(err, data){
//do something with the file
});

在这种情况下,参数 err 和 data 是任意命名和排序的,因此它们可能采用其他顺序

function(data, err) {/*do something*/ }

data 是如何传递 data 的,err 是如何传递错误的?

我注意到这种模式在 javascript 回调中随处可见,对于我来说,函数参数如何以可预测的顺序传递而不遵循某些我必须不知道的约定,这在很大程度上是一个谜。

这是如何工作的?

最佳答案

当你打电话时会发生什么

fileSystem.readFile('done', function(err, data){
//do something with the file
});

作为第二个参数传递的函数将被保存以供以后使用(当文件读取完毕时)。然后它将调用您为您传递的函数,并使用可能的错误值作为第一个参数,文件内容作为第二个参数。

readFile = function(event, callback) {
var error = null;
var fileContents = /* read file implementation. Maybe error will be assigned some value here */;

callback(error, fileContents);
}

当然,这只是一些伪代码来说明我的观点。

现在,您可以在函数 function(err, data) 中随意命名参数,因为它们在您定义的范围内。即使您交换它们的名称function(data, err),它们仍然会分别包含错误和文件内容值。

关于javascript - 回调函数的参数如何依赖于顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681096/

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