Я использую defer
для преобразования обещания (getAuthToken
) в наблюдаемое. Затем, используя subscribe
, присвойте ответу переменную token
.
* новичок в наблюдаемых, но пытался столько, сколько мог в одиночку
Я пытался использовать from
для преобразования обещания, хотя на самом деле это не решение проблемы, но попытался его использовать. Также используется труба (карта ()) ...
Я имею в виду эту статью , которая объясняет, что наблюдаемые должны быть синхронными. Хотя мой пример, похоже, не действует таким образом.
getFakeConfig() {
const token = defer(getAuthToken).subscribe(res => {
console.log('res =', res)
return res
})
console.log('token =', token)
return {
headers: {
'content-type': 'application/json',
Authorization: `${token}`,
},
}
}
makeRequest() {
const config = this.getFakeConfig()
console.log('config =', config)
}
// in a different file, basically what it does
export const getAuthToken = () => {
return axios(options)
.then(response => response.data.token)
}
Удар makeRequest()
выходы:
token = Subscriber {
...
}
config = {
headers: {
'content-type': 'application/json',
Authorization: '[object Object]'
}
}
res = token234234234
Я ожидаю, что это выведет:
res = token234234234
token = token234234234
config = {
headers: {
'content-type': 'application/json',
Authorization: 'token234234234'
}
}