Skip to content

Instantly share code, notes, and snippets.

View lekkimworld's full-sized avatar

Mikkel Flindt Heisterberg lekkimworld

View GitHub Profile
@lekkimworld
lekkimworld / promise-race-sample
Created September 23, 2018 14:41
Example using Promise.race to timeout if a service lookup takes too long i.e. service not ready maybe due to dependent services
const lookupService = (name, timeoutService = 100) => {
if (!_services[name]) return Promise.reject(`Unknown service <${name}>`)
let svc = _services[name]
let timeout
return Promise.race([
svc.promise,
new Promise((resolve, reject) => {
timeout = global.setTimeout(() => {
reject(new Error(`Time out looking up service <${name}>`))
}, timeoutService)