javascript 不包括运费,这是价格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 不包括运费,这是价格相关的知识,希望对你有一定的参考价值。
'use strict';
const config = require('../config');
const debug = require('debug')('pricealert:PriceCrawler');
const { OperationHelper } = require('apac');
const xmlParser = require('xml2json');
class PriceCrawler {
constructor() {
this.opHelper = new OperationHelper(config.get('aws'));
}
fetchPrice(asin) {
return new Promise((resolve, reject) => {
setTimeout(() => {
this.opHelper.execute('ItemLookup', {
'ItemId': asin,
'ResponseGroup': 'ItemAttributes,Offers'
})
.then(xml => JSON.parse(xmlParser.toJson(xml.responseBody)))
.then(json => {
let cost;
if (json.ItemLookupResponse &&
json.ItemLookupResponse.Items &&
json.ItemLookupResponse.Items.Item &&
json.ItemLookupResponse.Items.Item.OfferSummary &&
json.ItemLookupResponse.Items.Item.OfferSummary.LowestNewPrice &&
json.ItemLookupResponse.Items.Item.OfferSummary.LowestNewPrice.Amount) {
cost = json.ItemLookupResponse.Items.Item.OfferSummary.LowestNewPrice.Amount / 100;
} else {
cost = -1;
}
resolve({
asin: asin,
cost: cost
});
})
.catch((err) => {
console.error('Something went wrong! ', err);
reject(err);
});
}, 5000); // timeout will control our rate limiting
});
}
execute(data) {
debug('getting the prices for asin %j', data);
return this.fetchPrice(data.asin);
}
}
module.exports = PriceCrawler;
以上是关于javascript 不包括运费,这是价格的主要内容,如果未能解决你的问题,请参考以下文章