Я использовал обещания, как рекомендовалось в моем предыдущем вопросе, чтобы получить значения из 2 вызовов asyn c.
Но я хочу, чтобы результаты моего первого вызова основывались на условии моего второго вызова. Я продолжаю терять определение, когда делаю то, что делаю. Как мне получить желаемый результат.
Первый JSON:
let first_json = [
{
"company": "one"
},
{
"company": "two"
},
{
"company": "three"
}
]
Второй JSON зависит от первого и имеет аналогичный формат.
Используя обещания, которые я сделал:
$.getJSON(first_json)
.then(first_data =>
first_data.map(d => {
return d.company;
})
)
.then(promises => Promise.all(promises))
.then(company => company.map(c => {
let second_json = json_string + c;
$.getJSON(second_json, function(data) {
if (data.length > 0) return c;
});
}))
.then(arr => {
console.log(arr);
});
arr
для меня должен возвращать ['one', 'three']
, но вместо этого возвращается: [undefined, undefined, undefined]
.
Почему это происходит и как мне исправить?