我们在调用中对一些fs函数使用了一些async/await语法,并希望引入一个Woocommerce API调用并使用async/await,但我正在努力解决这个语法问题。
const WooCommerceAPI = require('woocommerce-api');
exports.handler = async (event, context, callback) =>{
const orderFileName ="1141";
let wooOrderDetails;
var WooCommerce = new WooCommerceAPI({
url: 'http: //example.com',
consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
wpAPI: true,
version: 'wc/v1'
});
WooCommerce.getAsync('orders/' + orderFileName).then(function(result){
return JSON.parse(result.toJSON().body);
wooOrderDetails = JSON.parse;
console.log(wooOrderDetails);
let wooOrderID = wooOrderDetails.id;
let wooOrderNumber = wooOrderDetails.number;
let Email = wooOrderDetails.billing.email;
});
// Update order as Completed
const status ={
status: 'completed'
};
// Update WooCommerce Order Notes via API
WooCommerce.post('orders/' + orderFileName, status, function (err, states, res){
if (err) throw err;
console.log('Update WooCommerce order with status');
const data ={ note: 'Status Updated';
});
WooCommerce.post('orders/' + orderFileName + '/notes', data, function (err, data, res){
if (err) throw err;
else console.log('Woo Order Notes Update:');
});
});
});
};NPM module有一些异步示例,但我无法让它们正常工作。我主要认为函数的返回过程存在问题
发布于 2019-07-18 19:05:49
基本上,您将xyzAsync(a,b).then(result => {code})转换为result = await xyzAsync(a,b); code;。因此,您的第一个getAsync (其中包含一些小错误,顺便说一下)是:
const result = await WooCommerce.getAsync('orders/' + orderFileName)
const wooOrderDetails = JSON.parse(result.toJSON().body);
console.log(wooOrderDetails);
let wooOrderID = wooOrderDetails.id;
let wooOrderNumber = wooOrderDetails.number;
let Email = wooOrderDetails.billing.email;发布于 2019-07-18 19:36:51
以下是可能的错误修复和异步等待样式的工作代码:
exports.handler = async(event, context, callback) => {
const orderFileName = "1141";
let wooOrderDetails;
const WooCommerce = new WooCommerceAPI({
url: 'http: //example.com',
consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
wpAPI: true,
version: 'wc/v1'
});
const result = await WooCommerce.getAsync('orders/' + orderFileName);
wooOrderDetails = JSON.parse(result.toJSON().body);
console.log(wooOrderDetails);
let {id: wooOrderID, number:wooOrderNumber, billing} = wooOrderDetails;
let {email} = billing;
// Update order as Completed
const status = {
status: 'completed'
};
// Update WooCommerce Order Notes via API
try {
const statusResults = await WooCommerce.post('orders/' + orderFileName, status);
console.log('Update WooCommerce order with status');
const data = {note: 'Status Updated'};
const notesResults = await WooCommerce.post('orders/' + orderFileName + '/notes', data);
console.log('Woo Order Notes Update:');
} catch (e) {
// throw error or take actions you want
}
};https://stackoverflow.com/questions/57092820
复制相似问题