Strava-V3和Javascript es6发生器=不兼容?

我使用node-strava-v3和Node 5.7从Strava的API中检索JSON集合。 其实很简单,实际上没有问题。 我只想借此机会尝试ES6发电机。 到目前为止,我认为我很了解这个概念。 但是在这个Node-Strava-V3 API封装的情况下,这些方法永远不会直接返回值或承诺。 只允许回叫。 这引出了我的问题:我怎样才能把ES6发电机的概念发挥出来?

拿这个:(这需要access_token你可以要求在Strava门户)

var strava = require('strava-v3'); var mainActivity = {id: 504641206}; strava.activities.get(mainActivity, function (err, data){ if(err){ console.log("Strava GET issue: ", err); /// consume the JSON data here... }; //rest of the code 

但我可以使用生成器暂停,直到这个“strava.activities.get()”方法结束? 这种方法不返回任何,没有价值,没有承诺。

感谢您的所有build议

缩略词

这不是发电机的用例。 这将是一个async / await东西 ,没有使ES2016,但可能在ES2017的用例。

切线相关: 任何提供callback的API都可以承诺:

 var strava = require('strava-v3'); var mainActivity = {id: 504641206}; var p = new Promise((resolve, reject) => { strava.activities.get(mainActivity, (err, data) => { if (err) { reject(err); } else { resolve(data); } }); }); p.then( result => { //rest of the code }, error => { // handle error } ); 

事实上,在那里有多个库,承诺 – 如果任何函数遵循一个callback的Node约定获得一个错误作为第一个参数和数据作为第二个参数,如node-promisify