# Task
useTask()
Accepts a Generator functions and returns a Task<T, U[]>
where T
is the return value of the generator and U
is the type of parameters.
import { useTask } from "vue-concurrency";
/* ... */
const getProgressTask = useTask(function*() {
const number = yield ajax("/api/progress");
return number * 100;
});
# perform()
(...params: U) => TaskInstance<T>
Performs the task and returns a new task instance.
const task = useTask(function*(signal, a, b) {
/* ... */
});
const taskInstance = task.perform(1, 2);
# cancelAll()
() => void
Cancels all running or enqueued instances.
task.cancelAll();
# clear()
() => void
Cancels all running or enqueued instances and clears the instance stack to reset the task to initial state.
task.cancelAll();
# performCount number
Return the number of times the task was performed.
# isRunning
boolean
Returns true
if there's at least one running instance.
<template>
<div v-if="task.isRunning">Loading...</div>
</template>
# isIdle
boolean
Task is idle if there's no running instance.
# isError
boolean
Task isError if the last instance has error.
# last
TaskInstance<T> | undefined
Returns the last task instance if there's any.
# lastSuccessful
TaskInstance<T> | undefined
Returns the last task successful instance if there's any.
# drop()
Task<T, U>
Set's the concurrency policy to drop and returns itself.
# enqueue()
Task<T, U>
Set's the concurrency policy to enqueue and returns itself.
# restartable()
Task<T, U>
Set's the concurrency policy to restartable and returns itself.
# keepLatest()
Task<T, U>
Set's the concurrency policy to keepLatest and returns itself.
# maxConcurrency()
Task<T, U>
Set's the max concurrency and returns itself.