我想在命令完成后终止进程(或退出它们)。我有此代码,但进程立即退出。

var gplay = require('google-play-scraper');

gplay.list({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    start: 0,
    num: 120
  })
  .then(console.log, console.log);

gplay.list({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    start: 120,
    num: 120
  })
  .then(console.log, console.log);
process.exit();


我用node script.js > output.txt运行它,因为我想将输出写入文件。我不知道其他方法。

最佳答案

您可以使用Promise.all


  当可迭代参数中的所有promise已解决或可迭代参数不包含promise时,它将返回一个解决的Promise。它以第一个承诺被拒绝的理由拒绝。


回调displayThenExit将显示结果,然后退出节点进程

var gplay = require('google-play-scraper');

var p1 = gplay.list({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    start: 0,
    num: 2
  })

var p2 = gplay.list({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    start: 2,
    num: 2
  })
var displayThenExit = function(result){
    console.log(result);
    process.exit(0);
}

Promise.all([p1, p2]).then(displayThenExit, console.log);


ps:我将num: 2设置为限制返回用于测试目的的条目数

09-20 18:27