runPromise - hoge1e3/Tonyu2 GitHub Wiki

BaseActor

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);

Backlink