仍在努力理解 promise 及其运作方式。我正在查询 Google 网站管理员 API 以返回搜索分析数据。我已经设置了一个 promise ,如果我调用它一次,它就会返回数据,但是我需要根据前一个结果再次调用它。
例如:
startRow = 0;
data = [];
Query(startRow).then((results) => {
if (results != null) {
data.push(results)
startRow++;
// RUN SAME QUERY AGAIN
};
});
如果 Promise 返回数据,则 startRow 需要增加 1,然后调用相同的 Promise(使用更新的 startRow)。这是可能的还是我完全错误地看待这个问题?
最佳答案
您不能多次调用同一个 Promise,只能创建新的 Promise。
startRow = 0;
data = [];
function startQuery() {
// Generally a good idea to always return Promises,
// so you can chain them if needed
return Query(startRow).then(processResults);
}
function processResults(results) {
if (results == null) return;
data.push(results);
startRow++;
return startQuery();
};
startQuery();
或者,以更紧凑的方式:
startRow = 0;
data = [];
function startQuery() {
return Query(startRow).then((results) => {
if (results == null) return;
data.push(results);
startRow++;
return startQuery();
});
}
startQuery();
关于javascript - 在其内部调用相同的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50156008/