์๋์ ๊ฐ์ด ์ฝ๋ ์ผ
*aaa({
payload
},{call,put}){
yield put({
type: 'xxx',
payload: {...payload}
});
setTimeout(
yield put({
type: 'xxxx',
})
,1000)
},
setTimeout์ ์ถ๊ฐํ๋ฉด ํญ์ Uncaught SyntaxError: Unexpected identifier๋ฅผ ๋ณด๊ณ ํ๋๋ฐ ์ ๊ฑฐํ๊ณ ๋๋ฉด ๊ด์ฐฎ์์ง๋๋ฐ ์ ๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์ฌ๊ธฐ์ setTimeout์ ์ฌ์ฉํ๋ฉด ์๋๋์?
๋ ธ๋ ฅํ๋ค:
const delay = (ms) => new Promise((resolve) => {
setTimeout(resolve, ms);
});
*aaa() {
yield call(delay, 1000);
yield put...
}
@sorrycc setTimeout์์ ์๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. Uncaught SyntaxError: Uncaught SyntaxError: Unexpected identifier that I started to report yeild put ์คํ ํ ๋ฐํ ๊ฐ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ก์ ์ ์์ํ๋ ค๋ฉด ์ด ์ก์ ์ด ๋จผ์ ์ํ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๊ฐ, ๋ช ์ด ํ์ ์ํ์ ํน์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์์์ ๊ฐ์์ฑ์ ์ ์ดํ๊ธฐ ์ํด ์ํ์ ํน์ ๊ฐ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์ฌ์ฉํ ๊ณณ์ด ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ ์ ํ๋์ ์์ ์ผ๋ก ์์ฑํด์ผ ํฉ๋๋ค. ์ด ์์ ์ ๋ํ ๋ด ์์ ์ ์ดํด๋ ํจ๊ณผ๋ก ์์ฑ๋์ด์ผ ํฉ๋๋ค. ์์ ์๊ธฐ ๋๋ฌธ์ call๊ณผ put๋ง ์ฌ์ฉํ ์ ์๊ณ ๋ ๊ฐ์ ๋ฆฌ๋์๋ฅผ ๋ฃ๊ณ ์ํ๋ฅผ ๋ ๋ฒ ๋ณ๊ฒฝํ ์ ์์ง๋ง yeild๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ setTimeout์ ์ํด ์ ์ด๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.์ง์ ๋ ์๊ฐ์ ์์ ์ด ํธ๋ฆฌ๊ฑฐ๋๋ ์๊ฐ์ ์ด๋ป๊ฒ ์ ํ ์ ์์ต๋๊น? time (์๋ setTimeout์ ๋์คํจ์น ๋ฐ์์ ์์ฑํด๋ ๋์ง๋ง ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด์๋ ํ๋ก์ ํธ๊ฐ ์ด๋ฐ ์์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์๋ฐฑ ์๋ฆฌ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๊ณ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ ์ ์์)
์ ๋๋ ์ดํฐ์ ์ผ๋ฐ ๊ธฐ๋ฅ์ ์ฐจ์ด์ ์ ์ดํดํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํ ์ ์์ผ๋ฉฐ ์ ๋๋ ์ดํฐ์์๋ ์ผ๋ฐ ๊ธฐ๋ฅ์ ์ค์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ ธ๋ ฅํ๋ค: