0
我可能錯過了一些真正的基本在這裏,但我似乎無法找到錯誤,它變得令人沮喪。我只是試圖從我的開發SharePoint站點上拉列表(然後項目,但在這裏一次)。jQuery推遲並承諾 - 錯誤:對象不支持屬性或方法'然後'
我已經得到了第一個延遲方法構建和控制檯日誌顯示它完成,但後來我得到「錯誤:對象不支持屬性或方法」,然後'「,好像jQuery失敗了。
僅供參考,我試圖按照這裏介紹的方法:http://www.shillier.com/archive/2013/03/04/using-promises-with-the-javascript-client-object-model-in-sharepoint-2013.aspx
下面的代碼:
<script src="jquery-1.11.2.js"></script>
<script type="text/javascript">
$(function() {
GetSiteLists.bListsGotten().then(
function (oWebLists) {
// Get Lists Succeeded
alert('Lists Retrieved');
}
, function (sender, args) {
// Get Lists Failed
alert('Lists Not Retrieved');
}
);
});
GetSiteLists = function() {
var bListsGotten = function() {
var deferred = $.Deferred();
var oContext = new SP.ClientContext.get_current();
console.log('oContext instantiated');
var oWeb = oContext.get_web();
console.log('oWeb instantiated');
this.oWebLists = oWeb.get_lists();
console.log('oWebLists command set');
oContext.load(this.oWebLists);
console.log('context load command set');
oContext.executeQueryAsync(
Function.createDelegate(this,
function() { deferred.resolve(this.oWebLists); }),
Function.createDelegate(this,
function (sender, args) { deferred.reject(sender, args); }));
console.log('list retrieval query executed async');
console.log('returning promise');
return deferred.promise;
}
return {
bListsGotten: bListsGotten
}
}();
</script>
謝謝。謝謝。我知道這很簡單,我花了這麼長的時間纔看到它(花了4個小時試圖通過嵌套的異步調用來做這件事,然後再做研究找到承諾,然後重新開始)。再次謝謝你。 – h0ffm4nn 2015-03-25 02:15:46
是的,追查很難,而且錯誤信息是誤導性的(因爲它沒有告訴你「對象」實際上是一個函數,它將縮小範圍)。我建議您熟悉chrome/firefox開發工具,因爲它們可以幫助您更快地調試這些內容。 – 2015-03-25 03:02:29