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

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

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

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

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

3 回复

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还能这样用,多谢。

回到顶部