soporte Contactar con Soporte | Estadoestado del sistema del sistema
Contenido de la página

    Conceptos: Uso de promesas JavaScript

    En este tema, aprenderá a utilizar las promesas de JavaScript, que son devueltas por algunos métodos de Brightcove Player.

    Promesa simple

    Aunque NO es el propósito de este documento enseñarle a escribir un JavaScript Promise, para entender cómo usarlos es instructivo ver cómo Promise se codifica un simple.

    A continuación, Promise se crea un que devuelve una cadena que indica si una tarea se completó o no. El punto clave es que se llama al método Promise.resolve() o Promise.reject(). En este caso, ambos métodos pasan una cadena simple, pero esto podría ser un objeto.

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

    Ahora verá cómo lidiar con la Promise información devuelta, que es lo que hará con algunas llamadas al método de Brightcove Player API. El manejo básico de un siguiente:

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

    Manejar el ejemplo simple anterior aparecería como se muestra aquí:

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

    Si Promise se resuelve el then código se ejecuta, y si Promise se rechaza el catch código se ejecuta. Para el ejemplo, una de las cadenas Yea, I am done o Not quite done aparecería basada en la lógica de negocio que establece el valor de la taskComplete variable.

    Ejemplo de Brightcove

    El play() método de Brightcove Player puede devolver una Promesa que se puede utilizar para comprobar si el reproductor puede reproducir automáticamente el vídeo actualmente en el reproductor. El código que trata con el Promise está resaltado:

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

    En base a esto, puede codificar comportamientos si el vídeo se reproduce automáticamente o no. Para ver un caso de uso específico que reproduzca el vídeo, con audio cuando sea posible, consulte la sección Caso de uso específico del documento Consideraciones de reproducción automática .

    Para obtener información completa sobre las promesas de JavaScript, consulte el documento MDN Promise .

    Promise versus devolución de llamada

    En esta sección, el get() método del catálogo se utiliza para demostrar la diferencia de sintaxis entre el uso de una función de devolución de llamada Promise frente a una. El get() método se puede usar con cualquiera de los enfoques.

    Sintaxis Promise

    El siguiente es un fragmento de código que muestra la llamada al get() método, manejando la respuesta como Promise:

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

    Sintaxis de la función de devolución de llamada

    El siguiente es un fragmento de código que muestra la llamada al get() método, manejando la respuesta con una función de devolución de llamada:

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