NodeJs,如何将数据从co返回到外部对象

时间:2015-03-05 11:26:05

标签: node.js es6-promise co

需要帮助! 我怎样才能获得co以外的数据?我不想在.then()中处理它们。

我有一些像这样的代码(ES6):

 static class MyClass{
    //get some data
    static getMyData(){
           co(function *() {
                    //get data by yield, the value is json data
                    let value = yield getSomeData();
                    return value;
         });
    }
}

现在我不想处理.then()中的数据,我只想获取价值。但如果我这样做:

var result = co(function *(){});

我得到的是承诺对象......

那么,我该如何获取json数据呢?感谢。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用yield执行此操作,如下所示:

try{    
    var result = yield co(function *(){});
}catch(e){
    console.error(e);
}

但我认为你必须阅读更多关于异步代码的内容,我推荐Q promises。祝你好运。

答案 1 :(得分:0)

var result = co.wrap(function* (){
  var list = yield.listNum();
  return list;
})

result(true).then(function(value){
  console.log(value);
})

我得到它。

答案 2 :(得分:0)

function getMyData()
    return co(function *() {
        let value = yield getSomeData();
        return Promise.resolve(value);
    });
}

var result = getMyData();
result.then(function(data) {
      console.log(data); // the data is the value variable in function getMyData
})