О человек. Я думаю, у вас есть фундаментальное недоразумение о том, как работают Обещания. Во-первых, ax ios уже возвращает Promise
по умолчанию. Таким образом, вся ваша первая функция getData
может быть уменьшена до:
const getData = () => {
const url = "/getData"
return axios.get(url)
}
Но содержание вашего кода, похоже, указывает на то, что вы хотите получить обещаемое Обещание - так что вы можете проверить его состояние по любой причине. Вот пример того, как вы это сделаете, адаптированный из этого фрагмента :
function statusPromiseMaker(promise) {
if (promise.isResolved) return promise
let status = {
pending: true,
rejected: false,
fulfilled: false
}
let result = promise.then(
resolvedValue => {
status.fulfilled = true
return resolvedValue
},
rejectedError => {
status.rejected = true
throw rejectedError
}
)
.finally(() => {
status.pending = false
})
result.status = () => status
return result
}
Таким образом, вы можете сделать что-то вроде let thing = statusPromiseMaker(getData())
и если вы посмотрите вверх thing.status.pending
вы получите true
или false
et c ...
Я на самом деле не запускал то, что выше, возможно, я забыл скобку или два, но, надеюсь, это поможет.
Я должен признать - я не видел ничего подобного в дикой природе. Мне интересно знать, чего вы на самом деле пытаетесь достичь sh этим.