我有一个函数,从数据库中抽出一个来自Questions集合的随机问题。获取发电机功能的价值,koa
Game_Questions.js - 下面的console.log输出正确的值(我需要的字符串),所以我认为返回会让yield返回相同的值。
exports.random_Question = function *() {
yield Questions.findRandom().limit(1).exec(function(err,question){
console.log("rand q: " + question[0].text);
return question[0].text;
});
}
Game.js:
var Game_Questions = require('./backend/Game_Questions');
在这里,我想从random_Question
功能从代码片段访问上述(Game_Questions.js)question[0].text
值。我试过到目前为止:
var found_Question = Game_Questions.random_Question();
var found_Question = Game_Questions.random_Question().next().value;
这两个回报[Object对象],它透过JSON.stringify()后显示的对象是: {"value":{"emitter":{"domain":null,"_events":{}},"emitted":{},"ended":true},"done":false}
我也尝试使用co(function*())
,但它也没有让我拿出价值。请帮助如何访问它?
您将始终需要使用回调,因为它是异步的。 'co(Game_Questions())'应该为iirc返回一个承诺。 – Bergi