CNode

co 的使用问题,见代码。

问答
Mmrlong发布于10 年前最后回复10 年前8 回复4160 浏览0 收藏

我的目的是,一个方 法直接返回值,但由于调用数据,则返回是空的。

屏幕快照 2016-09-21 15.44.29.png

结果是这样子的: 1.png

我的目的是将 end 放在最近输出。

查看回复

回复 (8)

N
ncuzp#1·10 年前

这是异步!你可以这样Promise.resolve().then(() => co(gen)).then(在这里console)

M
mrlong#2·10 年前
引用 ncuzp这是异步!你可以这样Promise.resolve().then(() = co(gen)).then(在这里console)

@ncuzp then() 进入之后,console.log('end') 已执行了。

O
o6875461#3·10 年前

showuser 整个用co包起来, return co(function*(){具体逻辑})

M
mrlong#4·10 年前
引用 o6875461showuser 整个用co包起来, return co(function (){具体逻辑})

@o6875461 调用showuser是在ejs 的模板内使用,能这样用吗?? 例如: aaa.html:

<%- showuser('xxxxx') %>

T
tanket#6·10 年前

co不是说在koa2中被抛弃了吗,到底还需不需要学

L
luoyjx#7·10 年前

这个值是从promise对象调用then方法拿到的。 你这里方法需要返回一个promise对象,如下

co(gen); 

改成

return co.wrap(gen);

外部调用方法时

a.showselectuser(1, 'test')
	.then(function(result) {
		// 在这里拿到结果
	})
M
magicdawn#8·10 年前

去学 async/await 然后将 async 换位 co.wrap, 将 await 换为 yield

参与回复
登录后即可参与回复。登录