var myCallback = function(data) { console.log('got data: '+data);};var usingItNow = function(callback) { callback('get it?');};现在打开节点或浏览器控制台并粘贴上面的定义。最后在下一行使用它:usingItNow(myCallback);关于节点式错误约定Costa问我们如果要遵守节点错误回调约定会是什么样子。在此约定中,回调应该期望至少接收一个参数,即第一个参数,作为错误。可选地,我们将具有一个或多个附加参数,具体取决于上下文。在这种情况下,上下文是我们上面的例子。在这里,我在这个约定中重写了我们的例子。var myCallback = function(err, data) { if (err) throw err; // Check for the error and throw if it exists. console.log('got data: '+data); // Otherwise proceed as usual.};var usingItNow = function(callback) { callback(null, 'get it?'); // I dont want to throw an error, so I pass null for the error argument};如果我们想模拟错误情况,我们可以像这样定义usingItNowvar usingItNow = function(callback) { var myError = new Error('My custom error!'); callback(myError, 'get it?'); // I send my error as the first argument.};最终用法与上面完全相同:usingItNow(myCallback);行为的唯一区别取决于usingItNow您定义的版本:向第一个参数的回调提供“truthy值”(一个Error对象)的那个,或者为错误参数提供null的那个版本。 。