Konzepte: JavaScript-Versprechen verwenden

In diesem Thema erfahren Sie, wie Sie JavaScript-Versprechen verwenden, die von einigen Brightcove Player-Methoden zurückgegeben werden.

Einfaches Versprechen

Obwohl es NICHT der Zweck dieses Dokuments ist, Ihnen das Schreiben eines JavaScript beizubringen Promise Um zu verstehen, wie man sie benutzt, ist es lehrreich zu sehen, wie einfach es ist Promise ist codiert.

Im Folgenden wird a Promise wird erstellt, die eine Zeichenfolge zurückgibt, die angibt, ob eine Aufgabe abgeschlossen wurde oder nicht. Der entscheidende Punkt ist, dass entweder die Promise.resolve() oder Promise.reject() Methode wird aufgerufen. In diesem Fall wird von beiden Methoden eine einfache Zeichenfolge übergeben, dies kann jedoch ein Objekt sein.

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');
  }
});

Jetzt werden Sie sehen, wie Sie mit der Rückgabe umgehen Promise Informationen, die Sie mit einigen Brightcove Player-API-Methodenaufrufen ausführen werden. Die grundlegende Handhabung von a folgt:

folgt:
promiseName.then(
  // Function call for promise resolved
).catch(
  // Function call for promise rejected
)

Die Behandlung des obigen einfachen Beispiels würde wie folgt aussehen:

promiseToFinishTask.then(function(fromResolve) {
  console.log(fromResolve);
}).catch(function(fromReject) {
  console.log(fromReject);
});

Wenn die Promise ist das gelöst then Code wird ausgeführt, und wenn die Promise wird abgelehnt die catch Code wird ausgeführt. Zum Beispiel eine der Zeichenfolgen Yea, I am done oder Not quite done würde basierend auf der Geschäftslogik erscheinen, die das festlegt taskComplete Wert der Variablen.

Brightcove-Beispiel

Der Brightcove-Spieler play() Die Methode gibt möglicherweise ein Versprechen zurück, mit dem überprüft werden kann, ob der Player das aktuell im Player befindliche Video automatisch wiedergeben kann. Der Code, der sich mit dem befasst Promise ist markiert:

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.
    });
  }
});

Auf dieser Grundlage können Sie dann das Verhalten codieren, ob das Video automatisch abgespielt wurde oder nicht. Einen speziellen Anwendungsfall für die Wiedergabe des Videos mit Audio, wenn möglich, finden Sie in der Spezifischer Anwendungsfall Abschnitt der Überlegungen zur automatischen Wiedergabe Dokument.

Vollständige Informationen zu JavaScript-Versprechungen finden Sie in der MDN-Versprechen Dokument.

Promise versus Rückruf

In diesem Abschnitt die Kataloge get() Methode wird verwendet, um den Syntaxunterschied zwischen der Verwendung von a zu demonstrieren Promise versus eine Rückruffunktion. Das get() Methode kann mit beiden Ansätzen verwendet werden.

Versprechenssyntax

Das Folgende ist ein Codeausschnitt, der den Aufruf des get() Methode, Behandlung der Antwort als Promise::

myPlayer.catalog.get(catalogParams).then(function(videosReturned){
  console.log('videosReturned',videosReturned);
  myPlayer.playlist(videosReturned);
}).catch(function(errorObj){
  console.log('errorObj',errorObj);
});

Syntax der Rückruffunktion

Im Folgenden finden Sie ein Codeausschnitt, das den Aufruf der get() Methode zeigt und die Antwort mit einer Callback-Funktion behandelt:

myPlayer.catalog.get(catalogParams,function(errorObj,videosReturned){
  console.log('errorObj',errorObj);
  console.log('videosReturned',videosReturned);
  myPlayer.playlist(videosReturned);
});