Skip to content

Instantly share code, notes, and snippets.

@MartinMalinda
Created July 31, 2020 17:17
Show Gist options
  • Save MartinMalinda/1f41bfc4b208b4a5eae93dbb0c379dd0 to your computer and use it in GitHub Desktop.
Save MartinMalinda/1f41bfc4b208b4a5eae93dbb0c379dd0 to your computer and use it in GitHub Desktop.
<script>
function searchSpecies(term, options) {
return ajax(
`https://api.gbif.org/v1/species/search?q=${term}&rank=GENUS`,
options
);
}
export default defineComponent({
setup() {
const searchTask = useTask(function*(signal, event) {
yield timeout(200);
const { value } = event.target;
const { results } = yield searchSpecies(value, { signal });
return results;
}).keepLatest();
return { searchTask };
},
});
</script>
<template>
<div>
<br />
<div>
<input placeholder="Search species..." @input="searchTask.perform" />
<span v-if="searchTask.isRunning">☁️</span>
</div>
<div v-if="searchTask.lastSuccessful">
<div v-for="specie in searchTask.lastSuccessful.value">
{{ specie }}
</div>
</div>
</div>
</template>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment