Методы, которые вы предлагаете, эквивалентны then
и catch
из того, что я могу сказать (then
также принимает обратный вызов отклонения, но это не обязательно):
confirm("", "")
.then(()=> {})
.catch(()=> {})
Если вы действительно хотите добавить такие псевдонимы, вы можете добавить их к prototype
, но вы должны объявить их, чтобы машинопись узнала об этом:
declare global { // declare global { ... } needed if we are in a module, otherwise just the content of this block is needed
interface Promise<T> {
done(done : () => void): Promise<void>//overly simplistic, should be oveloded if we want this to be general propose
fail(done : () => void): Promise<void>//overly simplistic, should be oveloded if we want this to be general propose
}
}
Promise.prototype.done =Promise.prototype.then;
Promise.prototype.fail =Promise.prototype.catch;
confirm("", "")
.done(()=> console.log("ok"))
.fail(()=> console.log("fail"))
Вы также можете использовать async / await для работы с обещанием, возможно, это лучше для вашего случая:
(async function () {
try {
await confirm('', '');
console.log('ok')
} catch (e) {
console.log('fail')
}
})()