не могу вернуть результат цепочки обещаний - PullRequest
1 голос
/ 14 октября 2019
const request = require('request-promise')

требуется этот модуль и использовать его таким образом, чтобы данные и под-данные были опциями, которые я определил позже ...

    const foo= (data, subData) => {
    return request(data)
     .then(result => {
        console.log('result:',result)
        return request(subData)
    })
}

проблема заключается врезультат запроса (данных) не возвращается, но результат запроса (subData) возвращается

Q.allSettled([
  foo(),
  fo(),
  f(),
  .
  .
  .
])

и с помощью модуля q создайте массив обещаний, но я все еще не могу получить ожидаемый результатрезультат

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Вы можете использовать любой из следующих методов, чтобы связать свои обещания и вернуть оба ответа в массив

const foo = (data, subData) => {
    let result;
    return request(data)
        .then(res => {
            result = res;
            return request(subData)
        }).then(res => {
            return [result, res]
        });
}

//OR
const foo2 = (data, subData) => {
    return request(data)
        .then(res1 => {
            return request(subData).then(res2 => {
                return [res1, res2]
            })
        });
}

//OR
const foo3 = async (data, subData) => {
    let res1  = await request(data);
    let res2 = await request(subData);
    return [res1, re2];
}
0 голосов
/ 14 октября 2019

Я бы предложил следующий подход вместо Promise Chaining или Q:

const fetchData = (data, subData) => {    
    const result = await request(data);
    const resultSub = await request(subData);

    console.log(result, resultSub);
};
...