1.8.6 β’ Published 12 months ago
async-wave v1.8.6
Table of Contents
Installing
Package manager
Using npm:
$ npm install async-wave
Using yarn:
$ yarn add async-wave
CDN
Using unpkg CDN:
<script src="https://unpkg.com/async-wave@{{VERSION}}/dist/bundle.js"></script>
Usage
Before
// Promises chaining
await setFetchLog();
startLoadingIndicator();
getGithubUser(USER_NAME)
.then(loadJson)
.then(showAvatar)
.then((githubUser) => console.log(`avatar_url: ${githubUser.avatar_url}`))
.catch((error) => console.error(error))
.finally(endLoadingIndicator);
After
import { asyncWave } from 'async-wave';
// 첫λ²μ§Έ μΈμλ μ΄λ€ κ°μ μ λ¬νλ νμ νλ‘λ―Έμ€λ‘ κ°μΈμ Έμ μ λ¬λ©λλ€.
asyncWave<GithubUser>([USER_NAME, getGithubUser, loadJson], {
onBefore: async () => {
await setFetchLog(); // νΈλ€λ¬ λ΄λΆ μλ¬λ μΊμΉλ©λλ€! [1]
startLoadingIndicator();
},
onSuccess: async (githubUser) => {
await showAvatar(githubUser); // νΈλ€λ¬ λ΄λΆ μλ¬λ μΊμΉλ©λλ€! [2]
console.log(`avatar_url: ${githubUser.avatar_url}`);
},
onError: (error) => {
console.error(error);
},
onSettled: () => {
endLoadingIndicator();
},
});
Parameters
- callbacks: then λ©μλμμ μ€νν μ½λ°± ν¨μλ€μ λ°°μ΄μ λλ€. (μ°Έκ³ : 첫λ²μ§Έ μΈμλ μ΄λ€ κ°μ μ λ¬νλ νμ νλ‘λ―Έμ€λ‘ κ°μΈμ Έμ μ λ¬λ©λλ€.)
- option (μ ν μ¬ν): λ€μ μ½λ°± ν¨μλ€μ μ 곡νλ μ νμ μΈ κ°μ²΄μ
λλ€:
- onBefore: νλ‘λ―Έμ€κ° μμλκΈ° μ μ μ€νλλ ν¨μμ λλ€. ν΄λΉ ν¨μλ async ν¨μλ‘ μ λ¬ν΄μΌ ν©λλ€.
- onError: νλ‘λ―Έμ€κ° κ±°λΆλ μνμ λλ¬νμ λ μ€νλλ ν¨μμ λλ€.
- onSuccess: νλ‘λ―Έμ€κ° ν΄κ²°λ μνμ λλ¬νμ λ μ€νλλ ν¨μμ λλ€. λ§μ§λ§ νλ‘λ―Έμ€μ κ²°κ³Όκ° μ΄ ν¨μμ μΈμλ‘ μ λ¬λ©λλ€.
- onSettled: νλ‘λ―Έμ€κ° ν΄κ²°λκ±°λ κ±°λΆλ μνμ λλ¬νμ λ μ€νλλ ν¨μμ λλ€.
Return Value
체μΈμμ λ§μ§λ§ νλ‘λ―Έμ€μ κ²°κ³Όλ₯Ό λ°ννλ Promise κ°μ²΄μ λλ€.