Javascript 什么';在这种情况下,蓝鸟或Q承诺的正确用法是什么?
我正在使用一个节点机器包(machinepack wepay)与wepay通信,我希望能够正确地链接它 以下面的示例为例,我们将注册一个用户,创建一个帐户并发送电子邮件确认。在此过程中,我们将在mongo中存储一些结果信息Javascript 什么';在这种情况下,蓝鸟或Q承诺的正确用法是什么?,javascript,node.js,q,bluebird,Javascript,Node.js,Q,Bluebird,我正在使用一个节点机器包(machinepack wepay)与wepay通信,我希望能够正确地链接它 以下面的示例为例,我们将注册一个用户,创建一个帐户并发送电子邮件确认。在此过程中,我们将在mongo中存储一些结果信息 var WePay = require('machinepack-wepay'); // ... extraneous code removed for brevity var member = req.session.member; if( !_.has( membe
var WePay = require('machinepack-wepay');
// ... extraneous code removed for brevity
var member = req.session.member;
if( !_.has( member, 'wepay' ) ) {
WePay.userRegister({
clientId: config.wepay_client_id,
clientSecret: config.wepay_client_secret,
email: member.email,
scope: 'manage_accounts,collect_payments,view_user,send_money',
firstName: member.firstName,
lastName: member.lastName,
originalIp: req.headers['x-forwarded-for'],
originalDevice: req.headers['user-agent'],
tosAcceptanceTime: Math.floor(new Date() / 1000),
callbackUri: config.site_url + '/wepay/user?member=' + member.id,
useProduction: isProd
}).exec({
error: function (err) {
yourErrorHandler(err);
},
success: function (result) {
Member.update({id: member.id}, {wepay: result}, function (err, updated) {
if (err) {
yourErrorHandler(err);
}
else {
member = updated[0];
WePay.accountCreate({
accessToken: member.wepay.access_token,
name: 'Account Name',
description: 'My new account'
}).exec({
error: function (err) {
yourErrorHandler(err);
},
success: function (result) {
Member.update({id: member.id}, {wepay_account: result}, function (err, updated) {
if (err) {
sails.log.error("error updating page:", err);
}
req.session.member = updated[0];
// PATTERN CONTINUES HERE
});
}
});
}
});
}
});
}
else{
WePay.userDetails({
accessToken: member.wepay.access_token,
useProduction: false,
}).exec({
error: function (err){
yourErrorHandler(err);
},
success: function (result){
_.extend( member.wepay, result );
Member.update({id: req.session.current_page.id}, member, function (err, updated) {
if (err) {
sails.log.error("error updating page:", err);
}
req.session.member = updated[0];
// PATTERN CONTINUES HERE
});
},
});
}
那些
exec
和update
方法。对不起,这不是一个答案,也不是对问题真正有帮助的答案。这段代码有一个if/else语句和嵌套回调,它们可以用我不确定的承诺方式编写,因为我对它们还不太熟悉。不过,实现这些是第一步。你能做到吗?如果是这样,试着去做if/else
insidepromise回调没有什么特别的(请参阅),只是不要忘记返回您需要的内容。一旦你开始了,就开始吧。你看,我基本上已经写了一个完整的promise教程,我不想重复这里的所有内容:-)如果你需要具体的帮助,尽管问。那些exec
和update
方法。对不起,这不是一个答案,也不是对问题真正有帮助的答案。这段代码有一个if/else语句和嵌套回调,它们可以用我不确定的承诺方式编写,因为我对它们还不太熟悉。不过,实现这些是第一步。你能做到吗?如果是这样,试着去做if/else
insidepromise回调没有什么特别的(请参阅),只是不要忘记返回您需要的内容。一旦你开始了,就开始吧。你看,我基本上已经写了一个完整的promise教程,我不想重复这里的所有内容:-)如果你需要具体的帮助,尽管问。