#javascript #react-hooks #access-token
#javascript #реагирующие перехваты #токен доступа
Вопрос:
Я использую перехват useAsync, как описано в https://usehooks.com/useAsync / Существующий код работает хорошо, что-то вроде этого:
const useAsync = (asyncFunction, immediate = true) => {
const execute = useCallback(() => {
return asyncFunction()
.then((response) => {
console.log('SUCCESS', resposne)
})
}, [asyncFunction]);
return { execute};
}
const Component = () => {
const getFile = async () => {
const payload = { fileId };
return getFileInfo(payload);
};
const { execute } = useAsync(getFile, false);
useEffect(() => {execute()}, []);
}
Но мне нужно изменить useAsync таким образом, чтобы он добавлял токен в качестве дополнительного параметра к заданной функции ASYNC. Что-то вроде:
const useAsync = (asyncFunction, immediate = true) => {
const execute = useCallback(() => {
// GET THE TOKEN
getAccessToken().then((token) => {
return asyncFunction() // ADD token AS A PARAM HERE SOMEHOW?
.then((response) => {
console.log('SUCCESS', resposne)
})
}
}, [asyncFunction]);
return { execute};
}
Я подозреваю, что мне может потребоваться bind()
(MDN-привязка) токена к данной AsyncFunction в качестве дополнительного параметра, но я не могу заставить его работать. Есть предложения?
Комментарии:
1. Я думаю, что это нуждается в дальнейшем уточнении, поскольку очевидно, что вы не хотите этого делать
asyncFunction(token)
. Какова природа этой асинхронной функции?2. Асинхронная функция в основном представляет собой выборку с полезной нагрузкой. Это та
getFile
функция, которая есть в компоненте.