2016-10-19 2 views
1

나는 이라는 이름의 Action 클래스를 가지고 있습니다. IonicAlert이 호출됩니다. 내가 지금하고 싶은 것은 Action.do().then(() => { /* do domething */ }); 과 같은 것이지만, 이후에만 OK가 경고에 클릭되었다고합니다.이오니아 알리미 : 버튼을 누를 때까지 기다리십시오.

do(): Promise<boolean> { 

    let alert = this.alertCtrl.create({ 
     buttons: [{ 
     text: 'OK', 
     handler:() => { 
      alert.dismiss().then(() => { /* do something */ }); 
      return false; 
     } 
     }] 
    }); 

    alert.present(); 
    return null; 
    } 
} 

return null; 오류가 발생하기 위해서만 추가되었지만 물론 작동하지 않습니다. 어떤 아이디어, 어떻게 해결할 수 있습니까? 감사합니다

PS : https://forum.ionicframework.com/t/ionic-alert-wait-until-button-is-pressed/67448

답변

4

이 사이트의 도움으로 해결책을 찾을 수 없습니다 : 여기 https://basarat.gitbooks.io/typescript/content/docs/promise.html

do(): Promise<boolean> { 
    return new Promise((resolve, reject) => { 

     let alert = this.alertCtrl.create({ 
     buttons: [{ 
      text: 'OK', 
      handler:() => { 
      alert.dismiss().then(() => { resolve(true); }); 
      return false; 
      } 
     }] 
     }); 

     alert.present(); 

    }); 
    } 
} 
0

true 또는 false를 반환 할 수있는 버전 :

을 나는 또한 이온 포럼에 게시

:
showConfirm(): Promise<boolean> { 
    return new Promise((resolve, reject) =>{ 
     const confirm = this.alertCtrl.create({ 
     title : 'Are you sure ?', 
     buttons: [ 
      { 
      text: 'Yes', 
      handler:_=> resolve(true) 
      }, 
      { 
      text: 'No', 
      handler:_=> resolve(false) 
      } 
     ] 
     }).present(); 
    }) 
    } 

는 약속을 호출하려면

0

이 작품은 나를 위해

handler:() => { 
      console.log(this.viewCtrl.dismiss()); 
     } 
관련 문제