Как запустить запрос множественного выбора одновременно в sequelize, используя один await - PullRequest
0 голосов
/ 18 февраля 2020

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

products = await Product.findAll()
.then(data => {
  return data;
})
.catch(error => {
  //
});

variationProducts = await VariationProduct.findAll()
.then(data => {
  return data;
})
.catch(error => {
  //
});

Ответы [ 4 ]

1 голос
/ 18 февраля 2020

Вы можете выбрать

const [ productsPromise, variationProductsPromise ] = await Promise.all([Product.findAll(), VariationProduct.findAll()]);

ИЛИ

const [ productsPromise, variationProductsPromise ] = await { Product.findAll(), VariationProduct.findAll()}
1 голос
/ 18 февраля 2020
try {
    const [products, variationProducts] = await Promise.all([
        Product.findAll(),
        VariationProduct.findAll()
    ]);

    // Do what you need with the result;
}
catch(e) {
    console.error('Problem in getting data', e);
    throw e; // Or do what you want.
}

0 голосов
/ 18 февраля 2020

Вы можете сделать это так:

Promise.all([Product.findAll(), VariationProduct.findAll()]).then(data => {
    // data [0] is products
    // data [1] is variationProducts 
}).catch(error => {
    // oops some error
});
0 голосов
/ 18 февраля 2020
const products = Product.findAll();
const variationProducts = VariationProduct.findAll();

const productsPromise = await products;
const variationProductsPromise = await variationProducts;
...