3

需要帮忙!我怎样才能获得表格 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 数据呢?谢谢。

4

3 回答 3

1

你可以尝试这样做yield,像这样:

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

但我认为你必须阅读关于异步代码的 moar,我推荐 Q 承诺。祝你好运。

于 2015-03-05T12:07:25.297 回答
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
})

于 2017-06-29T20:15:46.643 回答
0

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

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

我明白了。

于 2016-06-11T00:31:05.313 回答