개념: 자바 스크립트 약속 사용

이 항목에서는 일부 브라이트코브 플레이어 메서드에서 반환되는 JavaScript Promise를 사용하는 방법에 대해 설명합니다.

간단한 약속

이 문서의 목적은 JavaScript를 작성하는 방법을 알려주지는 않지만Promise , JavaScript를 사용하는 방법을 이해하려면 간단한 스크립트가 어떻게 코딩되는지 보는Promise것이 좋습니다.

다음에서는 작업이 완료되었는지 여부를 나타내는 문자열을 반환하는 가 만들어집니다. Promise 요점은Promise.resolve() or Promise.reject()메서드가 호출된다는 것입니다. 이 경우 간단한 문자열은 두 메소드 모두에 의해 전달되지만 객체 일 수 있습니다.

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

이제 반환된Promise정보를 처리하는 방법을 살펴보겠습니다. 이는 일부 Brightcove Player API 메서드 호출에서 수행할 작업입니다. 의 기본 처리는 다음과 같습니다.

는 다음과 같습니다.
promiseName.then(
  // Function call for promise resolved
).catch(
  // Function call for promise rejected
)

위의 간단한 예제를 처리하는 것은 다음과 같이 나타납니다.

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

문제가Promise해결되면then코드가 실행되고, Promise가 거부되면catch코드가 실행됩니다. 예를 들어 문자열 중 하나Yea, I am done또는Not quite donetaskComplete변수 값을 설정하는 비즈니스 로직을 기반으로 표시됩니다.

브라이트코브 예제

Brightcove Player의play()메서드는 플레이어가 현재 플레이어에 있는 비디오를 자동 재생할 수 있는지 확인하는 데 사용할 수 있는 Promise를 반환할 수 있습니다. 를 다루는 코드는 다음과 같이 강조 표시됩니다. Promise

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

이를 바탕으로 비디오가 자동 재생되는지 아닌지 비헤이비어를 코딩 할 수 있습니다. 가능한 경우 오디오와 함께 비디오를 재생하는 특정 사용 사례는 다음을 참조하십시오. 특정 사용 사례의 섹션자동 재생 고려 사항문서.

자바스크립트 약속에 대한 자세한 내용은 MDN Promise문서를 참조하십시오.

Promise콜백 대비

이 섹션에서는 Catalog의get()메서드를 사용하여 콜백 함수와 콜백 함수 사용 간의 구문 차이를 보여줍니다. Promiseget()방법은 두 가지 방법 중 하나와 함께 사용할 수 있습니다.

약속 구문

다음은 응답을 a로 처리하는get()메서드 호출을 보여주는 코드 스니펫입니다Promise .

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

콜백 함수 구문

다음은 콜백 함수로 응답을 처리하는get()메서드 호출을 보여주는 코드 스니펫입니다.

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