How are callback functions' parameters dependent on ordering?
假设我有一个我在Javascript中等待的事件,我们将会有这样的事情:
1 2 3 | fileSystem.readFile('done', function(err, data){ //do something with the file }); |
在这种情况下,参数错误和数据是任意命名和排序的,因此它们可能是另一种顺序
1 | function(data, err) {/*do something*/ } |
数据如何传递数据,错误传递任何错误?
我注意到这种模式在各种各样的javascript回调中无处不在,对我来说,如果函数参数以可预测的顺序传递,而不遵循一些我不应该注意的约定,这在很大程度上是个谜。
这是如何运作的?
当你打电话时会发生什么
1 2 3 | fileSystem.readFile('done', function(err, data){ //do something with the file }); |
作为第二个参数传递的函数将被保存以供以后使用(当文件读完时)。 然后它将调用您为您传递的函数,可能的错误值作为第一个参数,文件内容作为第二个参数。
1 2 3 4 5 6 | readFile = function(event, callback) { var error = null; var fileContents = /* read file implementation. Maybe error will be assigned some value here */; callback(error, fileContents); } |
当然,这只是一些伪代码来说明我的观点。
现在,您可以根据需要在函数