Promises
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
In Javscrtipt Promises, "mark as successful" is called resolve(),
and "mark as failed" is called reject(). If you needed to create one manually,
it would look like:
let myPromise = new Promise((resolve, reject) => {
try {
result = somethingLongSlowAndFlaky()
if is_valid(result) { resolve() }
else { reject() }
}
catch(error) {
console.log(error)
reject()
}
})