Deferredで括った関数の完了を待ってある動作を達成したい。
問い合わせ内容をよりシンプルにさせて頂きました。
関数:costGetは引数付きで動作する内容ですが、こちらの完了を検知して、その後の動作を達成したい場合、どういったこの関数の呼出し方を行えばよろしいのでしょうか?
https://qiita.com/opengl-8080/items/6eba7922be168edfc439
を参考にして、現在までに仕上げているコーディングは以下のとおりです。
関数本筋の動作とあわせ、Defferedオブジェクトのresolve(reject)メソッドをキックするようなコーディングはどういう記述になるのでしょうか?
適応能力がなく低レベルのことを問い合わせてしまい申し訳ありませんが、何卒よろしくお願い申し上げます。
//品名CD枠の入力と数量枠が1以上の入力で原価を表示。
if (cd != "" && $(this).val() != "") {
$(".iabtn").prop("disabled", true); //確認ボタン無効化
var d = new $.Deferred();
costGet(maker_val, $obj, text, label);
d.promise()
.then(function() {
$(".iabtn").prop("disabled", false); //確認ボタン有効化
return false;
});
}
//原価情報の取得
function costGet (cd, $obj, text, label) {
$.ajax({
url: "cdcostget.php",
type: "POST",
dataType: "json",
data: {
maker_no: cd,
maker_no2 : costGetYM()
}
})
.done(function(data){
if (data.length <= 0) {
//いろいろ
} else {
//いろいろ
}
})
//サーバ接続エラー
.fail(function(data){
//いろいろ
})
return 【必要か否か、どういう記述が適策かわからない】;
}