如何在JavaScript(或节点),函数的参数被识别?
我正在学习Node.js(即使我不是Javascript的专家,但我理解并编写代码)。 现在,试图玩Node.js,我只是被困在这个代码:
var fs = require('fs'); fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; console.log(data); });
下面是我的一些疑惑:匿名函数有两个参数: err和data ,在函数err内部是读取抛出的文件时的错误,data是文件的实际内容。
- 那么,函数如何知道和区分哪个是错误的,哪个是文件的内容?
- 它是这样做的:第一个参数总是一个错误,第二个参数总是内容数据?
-
如果我这样写,函数里面会有什么错误和数据
function(data, err) {} ?
这只是一个简单的函数只传递两个参数。 它是如何工作的一些更多的论点?
如何在function,数据是数据和错误是错误?
对于上面的例子, 错误和数据是预定义的关键字(我怀疑是否)?
参数将按照它们在调用函数时传递的顺序获取值。 您可以通过阅读计划使用的函数的API文档来查看正确的顺序。
所以,如果您将函数更改为function(data, err) {}
,那么data
将包含错误,而err
将保存数据:)
为了方便您将来的工作,几乎每个接受callback的Node.js函数,第1个参数都是错误,第2个参数是函数的返回值。
1)。 那么,函数如何知道和区分哪个是错误的,哪个是文件的内容?
当从Node调用函数时,参数的顺序是已知的。
2)。 它是这样做的:第一个参数总是一个错误,第二个参数总是内容数据?
是。
3)。 如果我这样写,函数里面会有什么错误和数据
function(data, err) {} ?
他们将有相同的价值观,他们根本不会被使用。
对于上面的例子,错误和数据是预定义的关键字?
不。 你甚至可以重命名他们,他们仍然会被绑定到相同的值。
这是如何在API中定义的
在这里检查
如@gustavohenke指出的,如果你定义它
function(data, err){ ... }
那么data
将保存error log
, err
将保存file data
编辑
希望你在文档中阅读它应该清除你的怀疑:
callback传递两个参数(err,data),其中data是文件的内容。