有人可以解释callback()
函数在下面的代码中做了什么吗?这个回调函数来自哪里?
index.js
var _ = require('lodash');
var i18n = require('./lib/i18n');
var options = {
stage: 'options:post:configuration'
};
/**
* postprocess
* @param {Object} params
* @param {Function} callback
*/
module.exports = function (params, callback) {
'use strict';
var grunt = params.grunt;
grunt.verbose.subhead('Running:'.bold, '"assemble-contrib-i18n"');
grunt.verbose.writeln('Stage: '.bold, '"' + params.stage + '"\n');
var opts = params.assemble.options.i18n;
grunt.verbose.writeln('Options: '.bold, require('util').inspect(opts));
if (opts) {
var o = {};
var data = opts.data;
var templates = opts.templates;
var languages = opts.languages;
if (templates) {
o.templates = templates;
}
if (languages) {
o.languages = languages;
}
//data = path to a json file containing a list of languages, o = templates & languages
var pages = i18n(data, o);
grunt.verbose.writeln('Pages: '.bold, require('util').inspect(pages));
params.assemble.options.pages = _.extend({}, (params.assemble.options.pages || {}), pages);
}
callback();
};
module.exports.options = options;
以及此index.js
文件的使用位置在此gruntfile.js文件中
"with-plugin": {
options: {
plugins: ['./index.js'],
i18n: {
data: ['test/fixtures/data/i18n.json'],
templates: ['test/fixtures/templates/*.hbs']
}
},
dest: 'test/actual/with-plugin/',
src: '!*.*'
},
那么这里的回调函数是什么?
答案 0 :(得分:0)
正在定义的函数(接受回调作为参数)是脚本requires
此模块时导入的值。所以回调是由调用脚本提供的:
require('someModule')(someParams, myCallback);
// which is the same as:
var func = require('someModule');
func(someParams, myCallback);
在您提供的代码中,回调没有什么特别之处,它只是在函数末尾执行。