我想製作一個自定義的dojo JsonRest商店,在query
函數中有一部分我不明白。我想做一個自定義的dojo JsonRest商店,有一個我不明白的部分
這是我不完全瞭解的部分:
var results = xhr("GET", {
url: this.target + (query || ""),
handleAs: "json",
headers: headers
});
results.total = results.then(function(){
var range = results.ioArgs.xhr.getResponseHeader("Content-Range");
return range && (range = range.match(/\/(.*)/)) && +range[1];
});
return QueryResults(results);
據我瞭解,它試圖從URL獲取對象的數組,然後總的記錄追加到results
這是一個deferred
?你能做到嗎?它看起來像該函數返回一個布爾值而不是整數。
無論如何,我試圖以我自己的方式複製那部分代碼。
var result = request.post(this.target + "/get",
{
data: dojo.toJson(requestParam),
handleAs: "json",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
}
});
var results = result.then
(
function (result)
{
return (result.entities?result.entities:{});
}
);
results.total = result.then
(
function (result)
{
return result.total;
}
);
results.total.then(function(total){
console.log("total results: ", total);
});
return QueryResults(results);
但total
是不確定的,我認爲這是因爲results
是延遲不是一個數組。我只是不明白。我如何以我自己的方式重新創建這個功能?
當我使用委託將它返回一個承諾或延期? – William
Nvm我已經設法讓它工作。謝了哥們。 – William