Node J를 사용하여 `&&` 및 `||` 시뮬레이션

5447 단어 nodeshell
지난 기사에서는 셸 없이 하나에서 두 개의 Nodejs 모듈을 실행하는 방법을 설명했습니다. 비밀은 Nodejs 자체에서 제공하는 자식 프로세스입니다. 오늘 저는 &&||를 쉘로 시뮬레이션하는 다른 두 가지 유형을 다룰 것입니다.

쉘에 대한 &&||에 대한 훌륭한 설명을 찾았습니다.

&& strings commands together. Successive commands only execute if preceding ones succeed.
Similarly, || will allow the successive command to execute if the preceding fails.



명령의 성공 여부를 결정하기 위해 쉘이 의존하는 신호는 exit code 입니다.

종료 코드


exit code는 프로그램에서 반환된 코드입니다. NodeJS의 세계에서 우리process.exit는 종료를 위한 적절한 코드를 설정하고 종료합니다. 예를 들어

// exit without error
process.exit(0)

// exit with errors
process.exit(1)


일반적으로 0는 성공 코드로 사용되며 나머지는 다른 용도로 사용됩니다. 일반적으로 위의 스크립트와 같이 명시적으로 종료 코드를 설정할 필요가 없습니다. NodeJS는 프로그램이 종료될 때 적절하게 처리합니다.

자식 프로세스의 종료 코드



하위 프로세스는 종료 후 데이터로 코드와 함께 이벤트exit를 내보냅니다. 그리고 메인 프로세스에서 다음 스크립트를 사용하여 코드를 검사하고 다른 스크립트 실행 여부와 같은 다음 작업을 수행할 수 있습니다.

childprocess.on('exit', (code) => {
  // inspect the code and operate as "&&" or "||"
})


그래서 우리는 간다




const fork = require('child_process').fork

// Equivalent to &&
const c1 = fork('./child1.js')
c1.on('exit', (code) => {
  if (code === 0) {
    const c2 = fork('./child2.js', {
      detached: true
    })
  }
})



그리고

const fork = require('child_process').fork
// Equivalent to ||
const c1 = fork('./child1.js')
c1.on('exit', (code) => {
  if (code !== 0) {
    fork('./child2.js', {
      detached: true
    })
  }
})


읽어 주셔서 감사합니다.

참조



https://shapeshed.com/unix-exit-codes/

좋은 웹페이지 즐겨찾기