- Source:
Methods
(static) deferred() → {Deferred}
登録された共通のエラー処理(h5.settings.commonFailHandler)を実行できるDeferredオブジェクトを返します。
Deferredに notify() / notifyWith() / progress() メソッドがない場合は、追加したオブジェクトを返します。
Deferredに notify() / notifyWith() / progress() メソッドがない場合は、追加したオブジェクトを返します。
Returns:
Deferredオブジェクト
- Type
- Deferred
- Source:
(static) isPromise(object) → {Boolean}
オブジェクトがPromiseオブジェクトであるかどうかを返します。
オブジェクトがDeferredオブジェクトの場合、falseが返ります。
オブジェクトがDeferredオブジェクトの場合、falseが返ります。
Parameters:
Name | Type | Description |
---|---|---|
object |
Object | オブジェクト |
Returns:
オブジェクトがPromiseオブジェクトであるかどうか
- Type
- Boolean
- Source:
(static) loop(array, callback, suspendOnTimesopt) → {Promise}
指定された回数ごとにループを抜けブラウザに制御を戻すユーティリティメソッドです。
また、callbackで渡された関数が{Promise}を返した場合、その{Promise}が終了するまで次のループの実行を待機します。
また、callbackで渡された関数が{Promise}を返した場合、その{Promise}が終了するまで次のループの実行を待機します。
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array.<Any> | 配列 | ||
callback |
function | コールバック関数。 コールバックには引数として現在のインデックス、現在の値、ループコントローラが渡されます。 callback(index, value, loopControl) loopControlは以下の3つのメソッドを持っています。
|
||
suspendOnTimes |
Number |
<optional> |
20 | 何回ごとにループを抜けるか。デフォルトは20回です。 |
Returns:
Promiseオブジェクト
- Type
- Promise
- Source:
(static) when(var_args) → {Promise}
引数に指定した1つ以上のPromiseオブジェクトに基づいて、コールバックメソッドを実行します。
ただし、以下のような違いがあります。
例)
また、可変長と配列の組み合わせで指定することはできません。
また、配列が入れ子になっていても、再帰的に評価はしません。
引数に指定されたPromiseオブジェクトの挙動によって、以下のような処理を実行します。
- 引数に指定されたPromiseオブジェクトのうち、1つでもreject()が実行されると、failコールバックを実行します。
- 引数に指定されたすべてのPromiseオブジェクトの全てでresolve()が実行されると、doneコールバックを実行します。
- 引数に指定されたPromiseオブジェクトでnotify()が実行されると、progressコールバックを実行します。
ただし、以下のような違いがあります。
jQuery.when()と相違点
- failコールバックが未指定の場合、共通のエラー処理(commonFailHandler)を実行します。(※ whenに渡したpromiseについてのcommonFailHandlerは動作しなくなります。)
- jQuery1.6.xを使用している場合、jQuery.when()では使用できないnotify/progressの機能を使用することができます。ただし、この機能を使用するにはh5.async.deferred()によって生成されたDeferredのPromiseオブジェクトを引数に指定する必要があります。
- 引数の指定方法について、jQuery.when()は可変長のみなのに対し、本メソッドは可変長またはPromiseオブジェクトを持つ配列で指定することができます。
引数の指定方法
配列または可変長で、複数のPromiseオブジェクトを渡すことができます。例)
- h5.async.when(p1, p2, p3);
- h5.async.when([p1, p2, p3]);
また、可変長と配列の組み合わせで指定することはできません。
- h5.async.when(p1, [p2, p3], p4);
また、配列が入れ子になっていても、再帰的に評価はしません。
- h5.async.when([pi, [p2, p3], p4])
Parameters:
Name | Type | Description |
---|---|---|
var_args |
Promise | Promiseオブジェクト(可変長または配列で複数のPromiseを指定する) |
Returns:
Promiseオブジェクト
- Type
- Promise
- Source: