node.js - 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
解决方案
让我向您介绍async/await的世界。只要您将函数声明为async
并且您正在“等待”的函数返回一个承诺,您就可以以更同步的方式处理它。查看上面链接的文档。请注意我在声明后如何调用异步函数。您不能在 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();
推荐阅读
- python - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是 '_io.TextIOWrapper'
- twilio - 使用 Twilio Say 和用户提供的输入时如何避免命令注入?
- javascript - Google Analytics 从购物车操作中删除应该如何工作?
- python - 如何更改客户端发送到服务器 Tensorflow Federated 的更新
- code-generation - telosys 生成能否在写入目标位置之前调用外部程序并根据返回值继续或取消写入目标
- python - 如何用 BeautifuSoup Python 解析?
- python - 如何阻止 plt.plot() 的输出在 Jupyter 笔记本中出现两次
- vue.js - Quasar:在 q-select 中删除对话框菜单中的标题
- javascript - 在Javascrypt的for循环中从其他随机数组元素构建数组
- javascript - 如何防止 chrome 扩展在 chrome:// 上运行