所以我有一个函数(getBagId),我想返回bag id,由于异步特性,我知道它不返回它,但是我将如何修复它,以便它返回bagId,这是代码< / p>
const getBagId = () => {
request.get('https://www.off---white.com/en-us/api/users/me', options, (err, res, data) => {
bagId = data.bagId
})
return bagId
}
再次,我希望函数返回bagId,因此将值设置为该值,我也想仅使用回调,没有promise或异步等待的方式来执行此操作,谢谢
答案 0 :(得分:0)
const getBagId = async () => {
const response = await rp({ uri : 'https://www.off---white.com/en-us/api/users/me' })
// Process the `bagId` from the response (JSON / XML / ??? )
const bagId = // `bagId` from response.
return bagId
}
答案 1 :(得分:0)
您可以利用承诺:
const getBagId = () => {
return new Promise((res, rej) => {
request.get('https://www.off---white.com/en-us/api/users/me', options, (err, res, data) => {
if(err) return rej(err);
return res(data.bagId);
});
});
}
但是现在您的.getBagId()返回一个Promise,因此您必须在应用程序中对其进行相应处理
答案 2 :(得分:0)
<nav>
是一个异步函数,因此request.get
需要返回一个Promise或通过使用getById
来异步执行。否则,除非有同步执行的async/await
方法的某个版本,否则我将无法执行,我对此表示高度怀疑。