2017-09-26 2 views
1

Je suis nouveau sur JavaScript et je n'ai pas compris comment utiliser correctement Promises.Comment utiliser une méthode externe qui renvoie une promesse? (JavaScript)

J'appelle une fonction d'un plugin natif de ionic 2 (BLE): IsEnabled() il signale si bluetooth est activé sur le périphérique, il renvoie une promesse qui résout si bluetooth est activé. J'ai essayé différentes approches, mais ils ne travaillent pas:

Dans BLEscanner.js

 blEnabled() { 
     BLE.isEnabled(); 
     return Promise; 
     } 

Dans Home.js

var BLicon { 
    iconColor = function() { 
     if (BLEscanner.blEnabled().Promise.isFulfilled()) 
     return '#606060'; //the icon displayed is gray 

     else return '#030303'; 
    }; 
    msg = function() { 
     if (BLEscanner.blEnabled().Promise.isFulfilled()) 
     return "Bluetooth is ON"; 

     else return "Bluetooth is OFF"; 
     } 
    } 

Je vais utiliser le msg dans une alerte d'action lorsque le l'icône sera tapée. Mais je ne suis pas sûr de savoir comment utiliser/développer la commande isFulfilled().

Répondre

1

BLE.isEnabled() retourne une promesse:

blEnabled() { 
     return BLE.isEnabled();//Returns a promise 
} 

En Home.js vous pouvez l'utiliser de cette manière

BLEscanner.blEnabled().then(() => { 
    //success 
    iconColor = '#606060'; 
    msg = "Bluetooth is ON"; 
},() =>{ 
    //fail 
    iconColor = '#030303'; 
    msg = "Bluetooth is OFF"; 
});