假设我有一个依赖于服务的应用程序,其中有许多实例。我自动想要在下一个服务的实例上重试请求。
这是一个示例请求:
var url = 'http://myservice1.com:3001'
function getItems() {
return new Promise((resolve, reject) => {
request(url+'/api/items',(body,error) => {
if(error) reject(error)
else resolve(body)
})
})
}
答案 0 :(得分:0)
你可以使用Promise函数的包装器,它使用多个url执行Promise函数。 async-wrap实现了这一点。 您可以像这样使用它:
function getItems(){
var urls = getServiceUrls() // Returns array
return coalesce(urls, requestItems)
function requestItems(url) {
return new Promise((resolve, reject) => {
request(url+'/api/items', (body,error) => {
if(error) reject(error)
else resolve(body)
})
})
}
}
免责声明:我开发了这个包,因为我遇到了这个问题,并寻找一个简洁的解决方案。我打开任何其他建议来解决这个问题。