Оператор '==' нельзя применять к типам 'Promise <any>' и 'string'. - ионный - PullRequest
0 голосов
/ 10 октября 2019

Приведенная ниже ошибка отображается на моей консоли при создании моего ионного приложения.

[14:24:56] машинопись: c: /mIncident/src/pages/home/home.ts, строка: 220 Оператор '==' не может применяться к типам 'Promise' и 'string'. L219: пусть simPermission = this.sim.requestReadPermission ();L220: if (simPermission == "OK") {L221: let simData = this.sim.getSimInfo ();

.ts код

let simPermission = this.sim.requestReadPermission();
if (simPermission == "OK") {
  let simData = this.sim.getSimInfo();
  this.simInfo = simData;
  //this.cards = simData.cards;


for(var i = 0; i < this.simInfo.length; i++){
this.phone = this.simInfo[i].phoneNumber;
}
  //console.log(simData);
}else{
  this.buttonDisabled = true;
  let alert = this.alertCtrl.create({
subTitle:("You need to grant this app permission to access your sim card"),
buttons: ['OK']
});

Что означает эта ошибка.

1 Ответ

1 голос
/ 10 октября 2019

this.sim.requestReadPermission возвращает обещание. Итак, вы пытаетесь сравнить обещание со строкой, которая не будет работать.

Используя документацию Ionic Native - Sim, вам будет нужно следующее: 1004 *

this.sim.requestReadPermission().then(
  () => {
      let simData = this.sim.getSimInfo();
      this.simInfo = simData;
      //this.cards = simData.cards;

      for(let i = 0; i < this.simInfo.length; i++){
          this.phone = this.simInfo[i].phoneNumber;
      }
     //console.log(simData);
  },
  () => {
      this.buttonDisabled = true;
      let alert = this.alertCtrl.create({
          subTitle:("You need to grant this app permission to access your sim card"),
          buttons: ['OK']
      });
  }
);

Обратите внимание, что this.sim.getSimInfo() также является обещанием, поэтому вам нужно сделать что-то подобное для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...