Dva: setTimeout์„ ๋ชจ๋ธ ํšจ๊ณผ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 08์›” 02์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dvajs/dva

์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ ์‡ผ

*aaa({
          payload
      },{call,put}){
        yield put({
            type: 'xxx',
            payload: {...payload}
        });
        setTimeout(
            yield put({
                type: 'xxxx',
            })
        ,1000)
      },

setTimeout์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ญ์ƒ Uncaught SyntaxError: Unexpected identifier๋ฅผ ๋ณด๊ณ ํ•˜๋Š”๋ฐ ์ œ๊ฑฐํ•˜๊ณ  ๋‚˜๋ฉด ๊ดœ์ฐฎ์•„์ง€๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฐ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ setTimeout์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋‚˜์š”?

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋…ธ๋ ฅํ•˜๋‹ค:

const delay = (ms) => new Promise((resolve) => {
  setTimeout(resolve, ms);
});

*aaa() {
  yield call(delay, 1000);
  yield put...
}

๋ชจ๋“  3 ๋Œ“๊ธ€

๋…ธ๋ ฅํ•˜๋‹ค:

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์€ ๋””์ŠคํŒจ์น˜ ๋ฐ–์—์„œ ์ž‘์„ฑํ•ด๋„ ๋˜์ง€๋งŒ ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ ์ˆ˜๋ฐฑ ์ž๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ณ  ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Œ)

์ œ๋„ˆ๋ ˆ์ดํ„ฐ์™€ ์ผ๋ฐ˜ ๊ธฐ๋Šฅ์˜ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ์ผ๋ฐ˜ ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰