首先,如果之前有人问我,我想道歉。我花了最后5个小时(是的,5个小时)试图让这个代码工作。
我觉得我应该使用承诺,但我需要你们的建议。如果我不需要使用承诺,我怎样才能得到我的工作?
我已经创建了一个从MongoDB中提取数据的函数:
var getData = function(db, channel, callback) {
var cursor = db.collection('streams').find({'channel': channel});
cursor.toArray(function(err, doc) {
assert.equal(err, null);
if (doc == null) {
console.log("No docs found");
} else {
doc = doc[0];
callback(null, doc);
}
});
};
我可以使用此功能控制记录数据。
getData(db, "#cikez", function(err, result){
assert.equal(err, null);
if (result == null) {
console.log("didn't work");
} else {
console.log(result); <-- logs results perfectly
}
});
我想做的是将上面的函数放入变量并返回数据(不是控制台记录它)。
var finalData = getData(db, "#cikez", function(err, result){
assert.equal(err, null);
if (result == null) {
console.log("didn't work");
} else {
console.log(result); <-- I want to return this data.
}
});
所以我可以这样使用它。
client.raw("PRIVMSG #jtv :/w " + user.username + " " + randomResponse + " " + finalData);