【发布时间】:2020-04-24 06:04:17
【问题描述】:
我不知道如何问这个问题,但我有一组需要解决的承诺,因为它们是数据 api 请求,但三个中的一个取决于另一个,我不确定如何解决。
有问题的代码如下所示:
let dependent;
let subscriptions = getSubscriptions() //data fetch
.then((subscriptions) => {
let fieldList = subscriptions.reduce((subscription) => {
if(subscription.Threshold) {
return subscription.Threshold.Field;
}
return null;
});
dependent = getUpdatedInfo(request, body, fieldList); //Data fetch promise
return subscriptions;
});
let userInfo = getUserInformation(); //Data fetch
Promise.all([subscriptions, userInfo, dependent]).then(function(values) {
console.log({ promiseAll: values }); //Dependent is always undefined
processSubscriptions(result, body, userInfo, subscriptions, dependent);
});
根据过去 4 小时的谷歌搜索,我已经尝试了几种不同的方法,但还没有完全弄清楚我在这里做错了什么。
【问题讨论】:
-
如果其中一个依赖于其他,那么它不是原始 Promise.all 集合的一部分,因为它不可能。所以你会得到
Promise.all([independent tasks]).then(results => promiseBasedOn(results)).then( data => now we're done )。 -
@Mike'Pomax'Kamermans 哇。我是一个白痴。你介意把这个作为答案吗?
-
老实说,不确定这是否构成一个真正的问题。问题主要是你忘了点东西。它也有很多反对意见,所以再次删除它可能更有效率?
-
我想如果你不想要功劳,哈哈
标签: javascript node.js promise fetch