간단한 약속
이 문서의 목적은 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 done는taskComplete
변수 값을 설정하는 비즈니스 로직을 기반으로 표시됩니다.
브라이트코브 예제
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()
메서드를 사용하여 콜백 함수와 콜백 함수 사용 간의 구문 차이를 보여줍니다. Promise
이get()
방법은 두 가지 방법 중 하나와 함께 사용할 수 있습니다.
약속 구문
다음은 응답을 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);
});