我希望在命令完成后终止进程(或退出它们)。我有这个代码,但进程立即退出。
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
运行它,因为我想将输出写入文件。我不知道其他方法。
答案 0 :(得分:0)
Javascript本质上是高度异步的,这意味着在调用第一个函数调用之后,它将立即移动到下一个语句。在您的情况下,有两种可能的方式:
答案 1 :(得分:0)
您可以使用Promise.all
它返回一个Promise,它在iterable参数中的所有promise都已解析或者iterable参数不包含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
以限制为测试目的而返回的条目数