Vm2: Promise.then์˜ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จ์‹œํ‚ต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 01์›” 12์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: patriksimek/vm2

์ด ์ฝ”๋“œ๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

'use strict'

const {VM} = require('vm2')

const vm = new VM({
    timeout: 5000,
})

console.log('Runs')

vm.run('Promise.resolve(42).then(() => {while(true) {}})') // hangs the process

setImmediate(console.log, 'Will never run')

๊ทธ๋ฆฌ๊ณ  Promise๋Š” ์‰ฝ๊ฒŒ ๋น„ํ™œ์„ฑํ™”๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: #74.

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

์ฝ์–ด๋ณด๊ธฐ.md

์ค‘์š”: ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” NodeVM์— ํšจ๊ณผ์ ์ด์ง€ ์•Š์œผ๋ฏ€๋กœ while(true) {} ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ์•…์— ๋ฉด์—ญ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@awiebe ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” VM ๊ฐ€ ์•„๋‹ˆ๋ผ NodeVM ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ์ด๊ฒƒ์€ ๋…ธ๋“œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ธฐ๋Šฅ์˜ ๋˜ ๋‹ค๋ฅธ ์ œํ•œ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ ์‹คํ–‰ ์ค‘์ด๋”๋ผ๋„ ๋น„๋™๊ธฐ์‹ ํ˜ธ์ถœ์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

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