【发布时间】:2020-01-08 06:11:20
【问题描述】:
我正在调用一个 API,每次请求只能获取 1000 条记录, 我能够使用递归来实现这一点。
我现在正在尝试使用 Promise 来实现相同的目标,我对 Node.js 和 JavaScript 也很陌生。
我尝试在 if else 块中添加递归代码但失败了
var requestP = require('request-promise');
const option = {
url: 'rest/api/2/search',
json: true,
qs: {
//jql: "project in (FLAGPS)",
}
}
const callback = (body) => {
// some code
.
.
.//saving records to file
.
//some code
if (totlExtractedRecords < total) {
requestP(option, callback).auth('api-reader', token, true)
.then(callback)
.catch((err) => {
console.log('Error Observed ' + err)
})
}
}
requestP(option).auth('api-reader', token, true)
.then(callback)
.catch((err) => {
console.log('Error Observed ' + err)
})
我想使用 Promise 并以同步方式执行该方法, 即我想等到记录全部导出到文件并继续我的代码
【问题讨论】:
-
你可以尝试将
callback设为async函数并在requestP函数promise 上设置await -
你会发现this Q&A相关。如果您无法将那里的技术适应您的特定情况,请 lmk 和我今天晚些时候会尽力为您提供帮助。
标签: javascript node.js recursion promise