在Scott Murray的“ Web交互式数据可视化”的第5章中,他写道:“在提到回调函数时,请注意,错误必须是第一个参数,数据是第二个参数。
为什么会这样?
答案 0 :(得分:-1)
我不知道Murray在说什么回调函数。但这是许多异步函数中使用的约定。
让我们解决这个问题。假设您正在调用其他人提供的函数fn
。可能来自代码的另一部分,来自npm模块的构造函数。如果您尝试呼叫fn(b, a)
而不是fn(a, b)
,那将是非常错误的。例如,如果fn = function(x, y) { return x - y; }
,则fn(2, 5)
将返回-3
,而fn(5, 2)
将返回3
。
相反,您的问题与上述情况完全相同:您正在定义一个函数,而其他人正在调用它。异步函数的提供程序已承诺以错误和数据作为参数调用您的回调,按顺序。因此,如果您将第一个参数视为错误,将第二个参数视为数据,它将起作用。
没有什么可以阻止人们创建异步函数的,这些异步函数以数据作为第一个参数,错误作为第二个参数来调用其回调。但是我不知道有谁这样做,所以如果有人这样做,只会造成混乱和毫无意义。