hexo Promise的使用
hexo中的Promise用的是bluebird
框架提供的,到处都是,基本上每个和执行命令相关的都用上了Promise,我们来看相关代码:
Promise.each:
位于hexo/index.js:Hexo.prototype.init1
2
3
4
5
6
7
8
9
10
11
12
13// Load config
return Promise.each([
'update_package', // Update package.json
'load_config', // Load config
'load_plugins' // Load external plugins & scripts
], function(name){
return require('./' + name)(self);
}).then(function(){
return self.execFilter('after_init', null, {context: self});
}).then(function(){
// Ready to go!
self.emit('ready');
});
遍历参数数组中的每个元素传递给参数方法
new Promise(func)
1 | Hexo.prototype.call = function(name, args, callback){ |
实例化一个Promise,这个call是调用命令控制台命令的函数。
Promise.all
1 | Hexo.prototype.load = function(callback){ |
调用所有数组中的方法。