请教,在co中yield得到的数据,如何传出来,而不是在.then()中处理?
发布于 9 年前 作者 butaixianran 3928 次浏览 最后一次编辑是 8 年前 来自 问答

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

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

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

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

4 回复

static TypeScript ???

js的这样

MyClass.getMyData = co.wrap(function*(){
	let vaule = yield getSomeData();
	return vaule;
});

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

@magicdawn 原来co还能这样用,多谢。

@butaixianran co 有且仅有这两个啊

回到顶部