easy-polling
Version:
Easy-polling aims to achieve one simple and pure task:\ Check result of an asynchronous task until the result matched required criteria.\ This process is so called "polling" or "poll"!.
44 lines (33 loc) • 1.35 kB
Markdown
Easy-polling aims to achieve one simple and pure task:\
Check result of an asynchronous task until the result matched required criteria.\
This process is so called "polling" or "poll"!.
Easy polling, easy to start~\
Hope you read below code snippet like a newspaper.:)
```js
npm i easy-polling
```
```js
const poll = require("easy-polling");
const fnAsyncTask = async () => {
// Do some async task, like calling a webservice or API
// Return a result which contains state to be checked
// Using axios as an example
return await axios.get("http://domain/api");
}
const fnValidate = (result) => {
// Input parameter result is the return value of fnAsyncTask
// Check state, below example check if status equal to done
return result["status"] === "DONE";
};
// fnAsyncTask: Do some async task, it has a return value
// fnValidate: Check state of return value from above function, if true, return the value, otherwise keep polling
// Polling interval 1000ms
// Polling timeout 30000ms, which means if fnValidate returns false until timeout, polling return null
poll(fnAsyncTask, fnValidate, 1000, 30000).then(pollingResponse = > {
console.log(pollingResponse);
});
```
https://github.com/paulatsydney/easy-polling