2016-04-07 14 views
1

私はjquery.ajaxを呼び出す予定の関数を持っており、それを今後の処理の約束として返します。jquery ajaxの代わりに約束を返す

ただし、時には、ajax呼び出しを行わずに同期を進めるための十分な情報があります。それは依然として、呼び出し元との契約を履行するために約束を返す必要があります。これを行う慣用方法は何ですか?

など。

function f(x) { 
    return x? 
    $.ajax({url: "http://myServer", data: x, ...}) 
    : /* what should be here? */; 
} 
+0

'jQuery.when(...)は'あなたは約束をして満たされる必要がある何 'Promise.resolve()' – Bergi

+0

しようとしたのですか?そのデータはどこから来たのですか? –

+0

で – Bergi

答えて

1

満たさjQueryの約束を作成するには、jQuery.whenを使用することができます。

return $.when(…); 

拒否jQueryの約束を作成するには、もう少し複雑なものを使用する必要があります(ただし、少なくとも次のことができますチェーンも):

return $.Deferrred().reject(new Error(…)).promise(); 
+0

$ .whenがより適切な(読みやすい、慣用的な、など)と考えられたら、Promise.resolve(...)? –

+0

@DavidGoldfarb:いいえ、それはちょっと違っています。適切なES6の 'Promise'の代わりにjQueryの約束を返します。したがって、jQueryを使用している場合は、 '$ .when'を使用する必要があります。 – Bergi

関連する問題