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