Может ли требуемый сценарий остановить выполнение родительского сценария? - PullRequest
0 голосов
/ 15 декабря 2018

Возможно ли - в приложении узла - для требуемого сценария остановить дальнейшее выполнение его родительского сценария?

Допустим, a.js требует b.js.Возможно ли для b.js остановить обработку a.js?

a.js

require('b.js')
// some other code that I might not want to execute

b.js

if (/* we do want `a.js` to continue */) {
  return
} else {
  // somehow stop `a.js` from being further processed
}

В идеале решениене будет включать порождение дочерних процессов :) Любое понимание этого будет с благодарностью!Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Ответ проще, чем я предполагал на первый взгляд:

a.js

const b = require('b.js')
// calling 'b' returns true if should terminate `a.js`
if (b()) {
  return
}

// the rest of script `a.js`

b.js

module.exports = () => {
  // run whatever,
  // return boolean (whether to further-execute `a.js`)
}
0 голосов
/ 15 декабря 2018

Экспорт функции, которая выдает:

 module.exports = function() {
  // In case you want to end the parents execution:
  throw new Error("I just want to be mean");
 };

Затем используйте ее как:

  require("b.js")();
  console.log("this will never happen");
...