gpt4 book ai didi

javascript - 我如何等待 yield ?

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:45 25 4
gpt4 key购买 nike

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

我尝试在生成器上调用 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(),它“将联合生成器函数转换为返回 promise 的常规函数​​”

var co = require('co');

...

var findOrCreateUser = co.wrap(userRepository.findOrCreateUser)

findOrCreateUser(profile.id, profile.name, 'pic').then(function() {
done();
});

关于javascript - 我如何等待 yield ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com