shopify-api-node: обещание не возвращает значение - PullRequest
0 голосов
/ 23 мая 2018

Настройка приложения node.js для получения информации о заказах из shopify.Я пытаюсь сохранить эти данные и запустить какую-то логику, но мне кажется, что я не могу их схватить.


ЭТО РАБОТАЕТ:

shopify.order.list()
.then(function(orders){
    console.log(orders);
  });

ЭТО НЕ РАБОТАЕТ:

var orders_json;
shopify.order.list()
    .then(function(orders){
        orders_json=orders;
          //console.log(orders);
      });

console.log(orders_json); //returns undefined

1 Ответ

0 голосов
/ 24 мая 2018

Позвольте мне представить вам мир async / await .Пока вы объявляете свою функцию как async и функция, которую вы «ожидаете», возвращает обещание, вы можете обрабатывать это более синхронно.Посмотрите на документы, связанные выше.Обратите внимание, как я вызвал асинхронную функцию после того, как она была объявлена.Вы не можете вызывать await вне области действия асинхронной функции.

async function fetchOrders() {
  try {
    const orders_json = await shopify.order.list();
    // do stuff with orders_json

    return orders_json;
  } catch(err) {
    // handle err
  }
}

const orders = fetchOrders();
...