์ด๊ฒ์ ์ค์ ๋ก ๋ฒ๊ทธ ๋ณด๊ณ ์๊ฐ ์๋๋ผ ๋ด๊ฐ ๋ฌด์์ ์๋ชปํ๊ณ ์๋์ง ๋๋ ์ข ์์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋์ง ์๋์ง์ ๋ํ ๋ ๋ง์ ์ง๋ฌธ์ ๋๋ค. ๋ฒ๊ทธ์ธ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํ ํ๋ฆฟ์ ํฌํจํ์ต๋๋ค.
๋ด์ ๋ค์ํ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํธ์ถํ๋ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ค๊ณ ํ ๋๋ง๋ค ๋ด ์ฝ๋์ ๋ค์ํ ๋ค๋ฅธ ์ง์ ์์ "TypeError: Cannot read property 'Symbol(Symbol.toStringTag)' of undefined" ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. async.waterfall ๋๋ distasync.js ์คํฌ๋ฆฝํธ ์์ฒด์์ ์ ๋ฌ๋๋ ๋น๋๊ธฐ ํธ์ถ ๋๋ ์ฝ๋ฐฑ ํจ์.
์ด๋ค ๋ฒ์ ์ ๋น๋๊ธฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? 2.4.1
(๋ ธ๋ ๋ฒ์ /๋ธ๋ผ์ฐ์ ๋ฒ์ ) ๋ ธ๋ v6.10.3
๋ญ ํ์ด? channel_connect.js ์์ ํจ์๋ฅผ ํธ์ถํ๋ bot_startup.js ์์ ์ด๋ฃจ์ด์ง๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ์์ํ์ต๋๊น? ์ต๊ทผ์ async๋ฅผ ์ ๋ฐ์ดํธํ ๋๊น์ง ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ์ผ๋ฉฐ ์ด ์ค๋ฅ๋ ์กด์ฌํ์ง ์์์ต๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ์ด์ ๊ณผ ๊ฐ์ด ์คํ๋ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค.
์ค์ ๊ฒฐ๊ณผ๋ ์ด๋ ๋์?
waterfall
์ ๋ฌํ๋ ํจ์ ์ค ํ๋ ์ด์์ด undefined
.
bot_startup์ #51 ๋ฐ #52 ํ, ํด๋น ๊ธฐ๋ฅ์ channel_connect์ ์ ์๋์ด ์์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋ ธ๋ js์ ๋น๋๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. createjob์ ๊ฒฐ๊ณผ ๋ณ์๊ฐ ์ฌ์์ฝ๋ ์์ ์ ์ ๋ฌ๋๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๊ฒฐ๊ณผ๊ฐ rescheduledjob ํจ์๋ก ์ ๋ฌ๋์ง ์์ง๋ง async.waterfall ์ ์์ ๋ฐ๋ฅด๋ฉด ์ฝ๋ฐฑ ์ธ์๋ฅผ ์ ๋ฌํฉ๋๋ค. ๋ค์ ๊ธฐ๋ฅ์ผ๋ก
asynch.waterfall
([
x.createJob(jobDefine, thread_id, (result) => {
data = result;
console.log(result);
}),
x.rescheduleJob(data, jobDefine, 5000, (err, data) => {
debugger;
}),
function (err, result) {
// result now equals 'done'
}
])
@rajatprogrammer x.createJob
๋ฐ x.rescheduleJob
๋ ํจ์๋ฅผ ๋ฐํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค.
@aearly ๊ฐ์ฌํฉ๋๋ค, bro ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ์ฝ๋ฐฑ bro๋ฅผ ํต๊ณผํ์ง ๋ชปํ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
waterfall
์ ๋ฌํ๋ ํจ์ ์ค ํ๋ ์ด์์ดundefined
.