在fs.readfile在使用fs.readfile.bind(context,pathArgument)时被调用

how does the callback in fs.readfile get called when using fs.readfile.bind(context,pathArgument)

本文关键字:readfile fs 调用 pathArgument bind context      更新时间:2023-09-26

如何在fs。当使用fs.readfile.bind(context,pathArgument)时,像这样调用readfile。//可以理解,因为我的任务函数知道回调参数

的名称
async.series([function(callback){
//operation done callback()},...],finalCallback(err,result));

但//无法理解

async.series([fs.someOperation.bind(null,firstArgument),...],finalCallback(err,esult)) 

我相信我理解部分应用程序;然而,它看起来像这样。function(callback){ fs.someOperation(firstArgument, ????)}(asyncCallbackFunc),然后我不知道第二个参数怎么叫…

所有bind所做的就是设置回调的上下文。它仍然是一个常规的回调。除了,它被明确地告知this将是什么。看起来在您的情况下,它被设置为null

函数对象上的bind函数允许您设置上下文,即在函数体内this的值,以及允许您在调用bind时传递一些参数时创建部分函数。

例如:

function add(a,b) { 
  console.log(this);  
  return a+b; 
}
var newAdd = add.bind("hello world", 10);

newAdd将是一个参数函数,它将被添加到10并返回结果。此外,当newAdd被调用时,"hello world"将被登录到控制台。

如果你的代码写了fs.readFile.bind(null, path)这意味着返回函数只有一个参数也就是readfile的回调函数也就是说返回函数的形式是function(callback) { ... }这正是需要传递给async.series

您发布的代码中的主要思想是创建一个只接受回调的部分函数,以便它可以传递给async.series, null参数不起任何作用,但您需要传递一个上下文参数来调用绑定函数,因此null被传递为上下文参数