CNode

请教,在co中yield得到的数据,如何传出来,而不是在.then()中处理?

问答
Bbutaixianran发布于11 年前最后回复11 年前4 回复4386 浏览0 收藏

请教,在co中,通过yield方法得到的数据,如何不在.then()中处理,而是直接把数据传递出来?

现在我按照ES6语法,定义了一个class,类似于:

 class MyClass{
    //获取数据的方法
  	static getMyData(){
  		   co(function *() {
            		//通过yield得到数据,数据是个json数组
            		let vaule = yield getSomeData();
            		return vaule;
         });
 	}
}

现在我只知道 co后面可以接.then()来处理数据,但我需要把 数据 传出来,到别的地方用。 请问该怎么办? 多谢。

查看回复

回复 (4)

M
magicdawn#1·11 年前

static TypeScript ???

js的这样

MyClass.getMyData = co.wrap(function*(){
	let vaule = yield getSomeData();
	return vaule;
});
M
magicdawn#2·11 年前

co() 本身也是 返回Promise的 记住 当generator.next() 返回 { done: true, value: xxx }后, 那么这个xxx就是这个Promise将resolve的值.

M
magicdawn#4·11 年前
引用 butaixianran@magicdawn 原来co还能这样用,多谢。

@butaixianran co 有且仅有这两个啊

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