shopify-api-node: обещание не возвращает значение

Настройка приложения 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 ответ

Решение

Позвольте мне представить вам мир асинхронности / ожидания. Пока вы объявляете свою функцию как 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();
Другие вопросы по тегам