コンセプト: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');
}
});
ここで、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
コードが実行されます。この例では、文字列の 1 つが Yea, I done or Net quetle done , Net quetle done という文字列は、taskComplete
変数の値。
Brightcoveの例
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.
});
}
});
これに基づいて、ビデオが自動再生されるかどうかでビヘイビアーをコーディングできます。ビデオを再生する特定の使用例については、可能な場合はオーディオを使用して、を参照してください。特定のユースケースのセクション自動再生に関する考慮事項資料。
JavaScript プロミスの詳細については、 MDNプロミスのドキュメントを参照してください。
Promise
対コールバック
このセクションでは、Catalog get()
のメソッドを使用して、Promise
コールバック関数を使用する場合の構文の違いを示します。get()
この方法は、どちらの方法でも使用できます。
約束の構文
以下は、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);
});