У меня есть функция, которая запускает произвольный код, называемый calculate()
. У меня if
состояние, и если оно true
, я выдаю ионный сигнал подтверждения.
Я могу получить всплывающее уведомление о подтверждении, однако я пытаюсь использовать async / await для ожидания ответа в подтверждении, но мое понимание async / await должно быть неверным. Вот в основном то, что я делаю:
import { AlertController } from '@ionic/angular';
export class Calculator {
private cancelResults:boolean = false;
constructor(private alertController:AlertController) {}
async calculate() {
// If my condition is true.
if (true) {
// show the user a confirm alert.
await this.warn();
// break out of function since they hit cancel.
if (this.cancelResults) return;
}
// The user hit Okay, continue with this function.
}
async warn() {
const alert = await this.alertController.create({
header: 'confirm',
message: 'my message',
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: (blah) => {
console.log('they hit cancel');
this.cancelResults = true;
return new Promise(resolve => setTimeout(resolve, 2000));
}
}, {
text: 'Okay',
handler: () => {
console.log('they hit ok');
return new Promise(resolve => setTimeout(resolve, 2000));
}
}
]
});
await alert.present();
}
}
Когда всплывает подтверждение, остаток от calculate()
fn продолжается. Я хочу дождаться подтверждения ответа.
Есть идеи, как этого добиться?