Tengo esta función asíncrona para obtener un token de acceso a la API:
const getAccessToken = async () => { try { const body = new URLSearchParams({ grant_type: 'client_credentials', scope: 'manage:all' }).toString(); const config = { headers: { Content_Type: 'application/x-www-form-urlencoded' }, auth: { username: clientId, password: clientSecret } }; const { data: res } = await axios.post( `${baseUrl}/oauth2/token`, body, config ); return res; } catch (err) { console.log(err); } };Devuelve una promesa que uso en la siguiente función para registrar el token de acceso a la consola:
getAccessToken().then(res => { console.log(res.access_token); });Registra el token como una cadena.
Ahora quiero usar este valor de cadena en otra función en mi código. ¿Simplemente llamo a la función donde necesito el valor como el anterior y reemplazo console.log con return ?
¿Cómo uso este valor de cadena en otras partes de mi código?
Una forma de hacerlo para llamar a la función en todas partes,
async function anotherFunction() { const res = await getAccessToken(); console.log(res.access_token) } Otra forma de hacer esto es llamar a la función en la carga de su página, guardar el token en la session/local storage/cookies y usar el token en otras funciones extrayéndolo de la session/local storage/cookies para evitar realizar varias llamadas a la API.
Al cargar la página
const res = await getAccessToken(); localStorage.setItem('token', res.access_token); async function anotherFunction() { const res = localStorage.getItem('token');; console.log(res.access_token) }