【发布时间】:2020-07-20 02:05:18
【问题描述】:
我有一个函数,其中嵌套了 Promises。当长度值为streamRes.length 时,我想重新执行此函数。目前只执行代码并在控制台打印出长度,不会重新执行。
let fetchEnrolleesData = () => {
getLastUpdatedEnrollee().then(res => {
let params = path+"enrollees?limit=100";
params += res.last_date ? "&last_updated_at=" + res.last_date.value : '';
fetchEnrolleesDataInStream(res, params).then(streamRes => {
if(streamRes.length) {
console.log(streamRes.length);
fetchEnrolleesData();
}
});
});
}
【问题讨论】:
-
你没有返回
getLastUpdatedEnrollee返回的承诺,也没有返回getLastUpdatedEnrollee的承诺。 -
"但不会重新执行。":是的(即使您没有返回承诺),但不知道代码中的其他函数,以及你如何使用这个函数的主调用,我们不能真正说出为什么它的行为不像你期望的那样。在代码中添加更多
console.log调用,以查看例如length何时为0,何时执行任何then调用,...等等
标签: javascript promise