如何在 loopback-next 中 res.send 一些东西
How to res.send something in loopback-next
我有一个具有回调的函数,如下所示,我想 return 帐户在回调中 return 作为对函数请求的响应。我怎么能 res.send 帐户(因为我不能 return 来自回调函数的值)
@get('/payments/retrieve-stripe/{id}', {
responses: {
'200': {
description: 'User model instance',
content: {'application/json': {schema: {'x-ts-type': User}}},
},
},
})
async retrieveStripe(@param.path.number('id') id: number,
@requestBody() req: any): Promise<any> {
if (!req.stripeAccountId) {
throw new HttpErrors.NotFound('No Stripe Account');
}
else {
stripe.accounts.retrieve(
req.stripeAccountId,
async function(err: any, account: any) {
//console.log(err)
console.log(account)
return account
})
}
}
如果您在代码中的任何一点都无法使用回调,您将使用手动承诺(或者可能是一些承诺包装库)。
不要使用 async
和 return
,而是使用 resolve()
,它在功能上可以 return
从您的函数的任何位置开始,而不管范围如何。
@get('/payments/retrieve-stripe/{id}', {
responses: {
'200': {
description: 'User model instance',
content: {'application/json': {schema: {'x-ts-type': User}}},
},
},
})
retrieveStripe(@param.path.number('id') id: number, @requestBody() req: any): Promise<any> {
return new Promise((resolve, reject) => {
if (!req.stripeAccountId) {
throw new HttpErrors.NotFound('No Stripe Account');
}
else {
stripe.accounts.retrieve(req.stripeAccountId, function(err: any, account: any) {
resolve(account);
})
}
});
}
我有一个具有回调的函数,如下所示,我想 return 帐户在回调中 return 作为对函数请求的响应。我怎么能 res.send 帐户(因为我不能 return 来自回调函数的值)
@get('/payments/retrieve-stripe/{id}', {
responses: {
'200': {
description: 'User model instance',
content: {'application/json': {schema: {'x-ts-type': User}}},
},
},
})
async retrieveStripe(@param.path.number('id') id: number,
@requestBody() req: any): Promise<any> {
if (!req.stripeAccountId) {
throw new HttpErrors.NotFound('No Stripe Account');
}
else {
stripe.accounts.retrieve(
req.stripeAccountId,
async function(err: any, account: any) {
//console.log(err)
console.log(account)
return account
})
}
}
如果您在代码中的任何一点都无法使用回调,您将使用手动承诺(或者可能是一些承诺包装库)。
不要使用 async
和 return
,而是使用 resolve()
,它在功能上可以 return
从您的函数的任何位置开始,而不管范围如何。
@get('/payments/retrieve-stripe/{id}', {
responses: {
'200': {
description: 'User model instance',
content: {'application/json': {schema: {'x-ts-type': User}}},
},
},
})
retrieveStripe(@param.path.number('id') id: number, @requestBody() req: any): Promise<any> {
return new Promise((resolve, reject) => {
if (!req.stripeAccountId) {
throw new HttpErrors.NotFound('No Stripe Account');
}
else {
stripe.accounts.retrieve(req.stripeAccountId, function(err: any, account: any) {
resolve(account);
})
}
});
}