Tengo una definición de API con este y otro punto final:
... saveCaptionsByLang: builder.mutation< Transcript, { wbId: string; ytUrl: string; lang: SupportedLang } >({ query: ({ wbId, ytUrl, lang }) => ({ url: wbId, params: { ytId: getYoutubeVideoId(ytUrl), toLang: lang, }, }) }), ...Y quiero poder usar esto afuera para crear una función que pueda llamar a esta función en función de los valores en una matriz.
Por ejemplo:
export async function saveCaptionsInAllLangs(wbId: string, ytUrl: string) { return Promise.all(["en", "fr", "pt", "es"].map(saveCaption)); async function saveCaption(lang: SupportedLang) { return await singleRequestFunction(..., lang).then(res =>...); //do something with the res // The awaited func here would be the equivalent of saveCaptionsByLang but without RTK Query } }Y esto es lo que tengo ahora:
export async function saveCaptionsInAllLangs(wbId: string, ytUrl: string) { return Promise.all(["en", "fr", "pt", "es"].map(saveCaption)); async function saveCaption(lang: SupportedLang) { const res = store.dispatch( apiSvc.endpoints.saveCaptionsByLang.initiate({ wbId, ytUrl, lang, }) ); } } La variable res del fragmento de código final dice que es del siguiente tipo,
{ data: FooType; } | { error: FetchBaseQueryError | SerializedError; } pero no puedo acceder a los .data de la variable porque dice que no existe.