我如何等待收益?

我有一个函数findOrCreateUser返回一个生成器。 但是我需要在函数done时调用一个callback函数。 我该怎么做呢?

我试着在发生器上调用next() ,但是结果正在等待。

 passport.use(new FacebookStrategy({ clientID: fbConfig.appId, clientSecret: fbConfig.appSecret, callbackURL: 'http://localhost:' + (process.env.PORT || 3000) + '/auth/facebook/callback' }, function(token, tokenSecret, profile, done) { var user = yield userRepository.findOrCreateUser( profile.id, profile.name, 'pic'); return user; }) ); 

你可以使用co.wrap()把co-generator-function转换成返回promise的常规函数

 var co = require('co'); ... var findOrCreateUser = co.wrap(userRepository.findOrCreateUser) findOrCreateUser(profile.id, profile.name, 'pic').then(function() { done(); });