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();