Promesse simple
Bien que ce n'est pas le but de ce document de vous apprendre à écrire un JavaScript Promise
, pour comprendre comment les utiliser, il est instructif de voir comment un simple Promise
est codé.
Dans ce qui suit, un Promise
est créé qui renvoie une chaîne indiquant si une tâche a été terminée ou non. Le point clé est que soit le Promise.resolve()
ou Promise.reject()
méthode est appelée. Dans ce cas, une chaîne simple est passée par les deux méthodes, mais cela pourrait être un objet.
let promiseToFinishTask = new Promise(function(resolve, reject) {
//Business logic to set taskComplete boolean
let taskComplete = true;
if (taskComplete) {
resolve('Yea, I am done');
} else {
reject('Not quite done');
}
});
Maintenant, vous verrez comment traiter les Promise
informations retournées, ce qui est ce que vous allez faire avec certains appels de méthode API Brightcove Player. La manipulation de base d'un suivant :
promiseName.then(
// Function call for promise resolved
).catch(
// Function call for promise rejected
)
La manipulation de l'exemple simple ci-dessus apparaîtrait comme indiqué ici :
promiseToFinishTask.then(function(fromResolve) {
console.log(fromResolve);
}).catch(function(fromReject) {
console.log(fromReject);
});
Si le Promise
est résolu, le then
code est exécuté, et si le Promise
est rejeté, le catch
code est exécuté. Pour l'exemple, une des chaînes Yea, I am done ou Not quite done apparaîtrait en fonction de la logique métier qui définit la valeur de la taskComplete
variable.
Exemple Brightcove
La play()
méthode du lecteur Brightcove peut renvoyer une promesse qui peut être utilisée pour vérifier si le lecteur peut lire automatiquement la vidéo actuellement dans le lecteur. Le code qui traite de l' Promise
est en surbrillance :
var myPlayer = videojs.getPlayer('myPlayerID');
myPlayer.on('loadedmetadata',function() {
var promise = myPlayer.play();
if (promise !== undefined) {
promise.then(function() {
// Autoplay started!
}).catch(function(error) {
// Autoplay was prevented.
});
}
});
Basé sur cela, vous pouvez alors coder les comportements si la vidéo jouée automatiquement ou non. Pour un cas d'utilisation spécifique de lecture de la vidéo, avec de l'audio lorsque c'est possible, reportez-vous à la section Cas d'utilisation spécifique du document Considérations de lecture automatique.
Pour des informations complètes sur les promesses JavaScript, consultez le Promesse MDN document.
Promise
par rapport au rappel
Dans cette section, la get()
méthode du catalogue est utilisée pour démontrer la différence de syntaxe entre l'utilisation d'une Promise
fonction de rappel et d'une fonction de rappel. La get()
méthode peut être utilisée avec l'une ou l'autre des approches.
Syntaxe Promise
Voici un extrait de code montrant l'appel à la get()
méthode, gérant la réponse comme Promise
suit :
myPlayer.catalog.get(catalogParams).then(function(videosReturned){
console.log('videosReturned',videosReturned);
myPlayer.playlist(videosReturned);
}).catch(function(errorObj){
console.log('errorObj',errorObj);
});
Syntaxe de la fonction de rappel
Ce qui suit est un extrait de code montrant l'appel à la get()
méthode, gérant la réponse avec une fonction de rappel :
myPlayer.catalog.get(catalogParams,function(errorObj,videosReturned){
console.log('errorObj',errorObj);
console.log('videosReturned',videosReturned);
myPlayer.playlist(videosReturned);
});