как получить будущее из разрешенного запроса на выборку?
Я использую API разработчиков coinbase для доступа к активам.
Для доступа к данным о тарифах требуется ключ доступа, который API отправляет обратно из запроса POST.
Я использую Flutures и модуль Fetch-Futures, а не просто API выборки на основе обещаний.
Раньше я не использовал фьючерсы. Статус ответа в порядке (200), но все параметры в объекте, который я возвращаю, говорят, что рядом с ними разрешено ( см. Снимок экрана).
Что именно означает, что тип каждого ключа внутри объекта данных разрешен?
Означает ли это, что я уже могу использовать значения или мне нужен дополнительный шаг, прежде чем я смогу вернуть свой токен доступа?
Мне нужен хороший способ доступа r.json[_value].access_token
.
JS:
function exchangeCodeForAccessToken(tempCode) {
const accessTokenURL = exchangeCode.url(tempCode);
const getAccessToken = url => {
console.log(fetchy);
return fetchy(url, exchangeCode.options)
.map(r => {
console.log(2, r.json);
return r;
})
.value(console.log);
};
1 ответ
Насколько я могу судить, Fetch-Futures оборачивает все значения в свой возвращаемый объект в Futures:
https://github.com/theodesp/fetch-future/blob/10af776d2653eaf75aea580b9dd2a52ae9175abd/src/index.js
Я не уверен, в чем причина этого *, но это означает, что вам, вероятно, придется сгладить нужные свойства во внешнем Future, например:
return fetchy(url, exchangeCode.options)
// I'm using chain instead of map, because chain flattens the Future
// And since r.json is a Future, that works out:
.chain(r => r.json)
//Now I can map, and the value will be what was inside r.json:
.map(json => json.accessToken)
* На вашем месте я бы, вероятно, использовал что-то другое, кроме Fetch-Futures. Он кажется несколько устаревшим и, скорее всего, не будет работать с последней версией Fluture, а также использует сомнительный дизайн API с упаковкой выходных значений.