将Promise.all与easyPost API一起用于跟踪状态的多个请求



我需要输出一长串发货及其跟踪状态/跟踪URL

如果我同步运行,那么可能需要很长时间。因此,如果我异步运行它,它应该会更快,因为所有请求都将同时运行,然后在完成后将所有信息返回到前端。

所以我仍然在节点中学习并使用promise,但到目前为止我已经做到了。。。但问题是Promise.all似乎从未执行过。所以我不确定我是否正确地执行了Promise函数,还是我对easyPost API不了解?

是的,目前我只使用2个发货Id,但可能会达到100或更多。。。

还有没有一种方法可以在检索货物时返回tracker元素,这样我就不必为每个货物打两个电话?

var promise = []
promise.push(getShipmentPromise('shp_xxxShipmentId'))
promise.push(getShipmentPromise('shp_xxxShipmentId2'))
Promise.all(promise)
.then(response => {
console.log('Sent - ' + req.method + req.originalUrl)
console.log('promise.all complete.')
// within an expressjs route
res.json(batches)
})
.catch(err => {
console.log(err)
})        
function getShipmentPromise (shipmentId) {
return new Promise((resolve, reject) => {
easyPostAPI.Shipment.retrieve(shipmentId).then(response => {
console.log(response.created_at)
})
})
}

您需要解决或拒绝承诺。如果你需要一个跟踪器元素,获取它,然后解决。


function getShipmentPromise (shipmentId) {
return new Promise((resolve, reject) => {
easyPostAPI.Shipment.retrieve(shipmentId).then(response => {
console.log(response.created_at)
resolve(response)
})
})
}

相关内容

  • 没有找到相关文章

最新更新