KOA:发电机不要去下一个
koa: generator don't go next
我有一个简单的对象,我在其中传递一个参数,然后我想在我的集合中找到所有文档并标记它。这是我的自定义对象:
var db = require('../lib/db');
function Widget(n,l,c,o,t,p) {
this.name = n;
this.label = l;
this.class = c;
this.order = o;
this.template = t;
this.params = p;
if(this.params != null) {
var a = getValue(this.params);
a.next();
}
}
function *getValue(p){
var Object = require("./sections");
console.log("1");
try {
var objects = yield Object.find({}).exec();
}
catch(err){
throw err;
}
console.log("2");
console.log("obj:" + objects);
}
module.exports = Widget;
这是部分.js
var db = require('../lib/db');
var schema = new db.Schema(
{
title: String,
parent: { type: db.Schema.ObjectId, ref: 'sections' },
child: [{ type: db.Schema.ObjectId, ref: 'sections' }],
updated_on: Date,
created_on: Date
});
module.exports = db.model( 'sections', schema );
我以这种方式创建对象:
var widget = new Widget("text","Titiolo",0,0,"text.html","sections");
在我的控制台上,我只看到"1"而不是 2 或"对象:"为什么?
这与koa
无关。 这就是生成器的工作方式。 .next()
计算代码,直到下一个yield
函数。因为生成器函数中有 1 个yield
,所以需要调用.next()
两次才能完成对整个函数的评估,包括最后两个console.log()
此外,您的 try/catch 块不执行任何操作。
相关文章:
- 滚动到容器中的下一个元素-几乎到了
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- AngularJS&JSON-从Previous&下一个对象
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 来自文档或下一个静态父级的事件委派
- angularjs移除焦点上的活动类并添加到下一个项目
- 禁用旋转木马中的下一个按钮和上一个按钮
- 当按下一个键时,请多次按下不同的键
- 正在加载下一个帖子
- 构建JS测试,警报窗口重复上一个Q,而不是问下一个Q
- 删除“;上一个“;以及“;下一个“;基于当前幻灯片
- 真正的下一个具有特定类的元素
- 如何使用javascript获取下一个/转发url
- jQuery转盘下一个元素没有滑入
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- KOA:发电机不要去下一个