shopify-api-节点:承诺不返回值

shopify-api-node: promise not returning value

设置 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

让我向您介绍 async/await 的世界。只要你将你的函数声明为 async 并且你的函数是 "awaiting" returns 一个承诺,你就可以以更同步的方式处理它。看看上面链接的文档。请注意我是如何在声明后调用异步函数的。您不能在异步函数范围之外调用 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();