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

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

간단한 약속

JavaScript를 작성하는 방법을 가르치는 것은이 문서의 목적이 아니지만 JavaScript를Promise사용하는 방법을 이해하려면 간단한Promise코딩 방법을 확인하는 것이 좋습니다.

다음에서는 작업이 완료되었는지 여부를 나타내는 문자열을 반환하는 가 만들어집니다. Promise 요점은Promise.resolve()또는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');
  }
});

이제 일부 브라이트코브 플레이어 API 메서드 호출에서 반환된Promise정보를 처리하는 방법을 살펴보겠습니다. 의 기본 처리는 다음과 같습니다.

는 다음과 같습니다.
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 done설정하는 비즈니스 로직을 기반으로 표시됩니다. taskComplete변수의 값.

브라이트코브 예제

브라이트코브 플레이어의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대 콜백

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

약속 구문

다음은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);
});