Basestone的目标是做一个JavaScript数据结构的集合,且这写数据结构应该足够smart。 一个combine文件的例子:
var filesToRead, fs, basestone;
fs = require('fs');
basestone = require('basestone');
filesToRead = basestone.map([
['./google.js', ''],
['./baidu.js', ''],
['./douban.js', '']
]);
filesToRead.on('change', function (key, value) {
var filesData, isAllReaded;
console.log(key + ' is readed')
filesData = this.values();
isAllReaded = filesData.every(function (data) {
return data !== '';
});
if (isAllReaded) {
console.log('all files are readed and combined:\n')
console.log(filesData.join('\n'));
}
});
filesToRead.keys(function (fileName) {
fs.readFile(fileName, function (err, data) {
if (!err) {
filesToRead.set(fileName, data);
}
});
});
可以说是attr的一个扩展,还有点像Backbone的model和collection。 现在还比较粗糙,wrapper也不够高效。 大家帮忙看看,文档在这里。
7 回复
@jiyinyiyong 上面的这个例子就是异步地读取google.js
、baidu.js
、douban.js
这三个文件,当都读取好了之后,打包输出。
这个场景如果使用async.js
写起来会更简单。