23 lines
500 B
JavaScript
Executable File
Vendored
23 lines
500 B
JavaScript
Executable File
Vendored
import { ref } from 'vue'
|
|
|
|
export const useApi = (getResult) => {
|
|
const result = ref(null)
|
|
const loading = ref(false)
|
|
const error = ref(false)
|
|
|
|
async function callAPI() {
|
|
result.value = null
|
|
loading.value = true
|
|
error.value = false
|
|
try {
|
|
result.value = await getResult()
|
|
} catch {
|
|
error.value = true
|
|
} finally {
|
|
loading.value = false
|
|
}
|
|
}
|
|
|
|
return { result, loading, error, callAPI }
|
|
}
|