我有一個主要功能,我想檢查一個記錄是否存在或不是爲了創建或更新記錄,所以在這個函數中我調用了一個幫助函數來檢查記錄使用ajax調用,然後我想要一個真/假返回到主函數,但是我返回defrred.resolve()和deferred.reject(),我如何檢查它們?我似乎無法在承諾中實現它。知道操作是成功還是拒絕承諾
這是我的代碼如下,任何提示表示讚賞。
function _mainFunction()(
var recordID = prompt("Enter Desired Record ID");
var promise = _helperFunction(recordID);
promise.then(...) //do some processing when the reocrd is created or updated
)
function _helperFunction(passedId){
if (passedId) {
if (!_isRecordExists(passedId)) {
// if record doesn't exist, create it.
}
}
}
function _isRecordExists(passedId){
var decision;
var baseUrl = "some url";
var dfd = $.ajax({
url: baseUrl,
type: "GET",
contentType: "application/json;odata=verbose",
headers: {
"accept": "application/json;odata=verbose"
}
});
dfd.promise().then(
function(data, status, jqXHR){
decision = true;
dfd.resolve();
},
function (jqXHR, status, error) {
decision = false;
dfd.reject();
});
return decision; // do I return decision here for true or false?
}
}
返回你應該從'_helperFunction'返回承諾爲好,或4號線將拋出一個錯誤。 – DCoder
@DCoder真的,謝謝! – dfsq
所以如果記錄不存在,這意味着查詢失敗,並進入失敗回調,所以我可以調用創建函數?調用函數來創建失敗的東西是否是一個好習慣?對不起,我還是這個新手。 – user5699896