co 的使用问题,见代码。
我的目的是,一个方 法直接返回值,但由于调用数据,则返回是空的。
结果是这样子的:
我的目的是将 end 放在最近输出。
8 回复
这是异步!你可以这样Promise.resolve().then(() => co(gen)).then(在这里console)
@ncuzp then() 进入之后,console.log(‘end’) 已执行了。
showuser 整个用co包起来,
return co(function*(){具体逻辑})
@o6875461 调用showuser是在ejs 的模板内使用,能这样用吗?? 例如: aaa.html:
<%- showuser(‘xxxxx’) %>
@mrlong 没在ejs中用过,不懂
co不是说在koa2中被抛弃了吗,到底还需不需要学
这个值是从promise对象调用then方法拿到的。 你这里方法需要返回一个promise对象,如下
co(gen);
改成
return co.wrap(gen);
外部调用方法时
a.showselectuser(1, 'test')
.then(function(result) {
// 在这里拿到结果
})
去学 async/await 然后将 async 换位 co.wrap, 将 await 换为 yield