ブール値を返すJavascript関数を作成しました。関数内のコード行の1つがREST呼び出しを呼び出します。私はそれをコーディングするときにコールが非同期になることに気付かなかった。非同期呼び出しを持つJavascript関数を正しく使用するにはどうすればよいですか?
if(isDataValid()) ...
私は成功関数に呼び出し関数でアクションを移動することもできますが、私は、再利用可能なメソッドを作成しようとしていた。だから、基本的には、この方法は、常に私のような何かをするとき、「false」に戻ります。私はjQueryとエベレストを使用しています。私はまだ約束について何も学んでいないし、私はかなりコールバックプログラミングに新しいです。
function isDataValid(){
// Read data from Local Storage
// Create object from data
// Flag variable to capture result
var isValid = null;
restClient
.read('/my/url', model)
.done(function(response)
{
// 'Good' response, set flag to true
isValid = true;
})
.fail(function(response)
{
// 'Bad' response, set flag to false
isValid = false;
});
return isValid;
}
がどのように非同期呼び出しを行い、真/ falseを返す必要があります。ここでは
は私のメソッドのバージョンを煮詰めていますか?
あなたは単純にできません。スタックの一部が非同期である場合は、すべてが非同期で(コールバックまたは約束によって)書き込まれる必要があります。関数を呼び出すことはできず、同期的に応答を得ることができます。 –
"再利用可能なメソッド"を作成し、それをパラメータとして 'invalid'を渡すsuccess関数から呼び出します。 – jdigital