runPromise - hoge1e3/Tonyu2 GitHub Wiki
runPromiseメソッド
非同期処理を行なうためのメソッドです。
※runAsyncメソッドとの違いは,結果を返す関数に渡せる引数が1つだけである点と,待機不能モードでも動作する点です.
書式
runPromise \(success,error) {
処理
};
- 処理の中では、コールバック関数を伴う処理(非同期処理)を行います。
- 非同期処理が完了したときのコールバック関数を指定する部分に
successを指定してください。- 待機可能モードでは,非同期処理が完了すると、runPromiseは終了します。戻り値は、コールバック関数に渡された第一引数になります。
- 待機不能モードでは,runPromiseはただちに終了し,Promiseオブジェクト(jQuery.Deferred)を返します.
- 非同期処理が失敗する可能性がある場合、失敗したときのコールバック関数を指定する部分に
errorを指定してください。- 待機可能モードで非同期処理が失敗すると、例外が投げられます.投げられる例外はerrorの第一引数に指定したオブジェクトです
- 待機不能モードで非同期処理が失敗すると、返されたPromiseオブジェクトが失敗状態になります
例
Main
native setTimeout;
\test(x) {
// 1秒後にxを返す
return runPromise \(s) {
setTimeout(\() {
s(x);
},1000);
};
}
//待機可能モードでの呼び出し
t=test(5);
print(t);
// 待機不能モードでの呼び出し.waitForを組み合わせると終わるまで待つことができる.
t=waitFor(this.test(10));
print(t);