是否有一个很好的实际例子,说明如何在lodash库中使用_.after方法?
答案 0 :(得分:7)
在需要在回调次数 n
之后调用回调时使用它。
var fn = _.after(3, function () {
console.log('done');
});
fn(); // Nothing
fn(); // Nothing
fn(); // Prints "done"
当所有异步调用完成时,调用回调非常有用。
var done = _.after(3, function () {
console.log('all 3 requests done!');
});
$.get('https://example.com', done);
$.get('https://example.com', done);
$.get('https://example.com', done);
玩家3次射击后死亡的基本游戏示例。
var isDead = _.after(3, function () {
console.log('Player died!');
});
player1.shoot(player2, isDead); // undefined
player1.shoot(player2, isDead); // undefined
player1.shoot(player2, isDead); // "Player died!"
基本上您使用_.after
代替手动计数器。
答案 1 :(得分:-2)
那里没有很多例子,但是我看到以下内容用于我的内部工具。
基本上以下是使用Node运行的脚本。它从给定的Mongodb集合中删除文档。这就对了。但是,只有在清理完所有集合后才能关闭数据库连接。我们将使用_.after方法。您可以在功能here
之后阅读 var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server;
_ = require('lodash');
var db = new Db('mydb', new Server('localhost', 27017));
db.open(function(err, db) {
var collectionsToClean = ['COLLECTIONA', 'COLLECTIONB', 'COLLECTIONC'];
var closeDB = _.after(collectionsToClean.length, function() {
db.close();
console.log('Connection closed');
});
_.forEach(collectionsToClean, function(collectionName) {
db.collection(collectionName, function(err, collection) {
collection.remove({}, function(err) {
if (err) {
console.log('Could not remove documents from ' + collectionName);
} else {
console.log("All documents removed from " + collectionName);
}
closeDB();
});
})
});
});
您现在可以将其用作其他Mongodb shell方法的模板。