gpt4 book ai didi

javascript - jQuery 延迟和 promise - 错误 : Object doesn't support property or method 'then'

转载 作者:行者123 更新时间:2023-11-30 16:58:42 26 4
gpt4 key购买 nike

我可能在这里遗漏了一些非常基本的东西,但我似乎找不到错误,这让我很沮丧。我只是想从我的开发 SharePoint 网站中提取列表(然后是项目,但这里一次提取一件事)。

我已经构建了第一个延迟方法,控制台日志显示它已完成,但随后我收到“错误:对象不支持‘then’属性或方法”,就好像 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>

最佳答案

promise 是一个函数,您没有调用它。

return deferred.promise()

会解决这个问题。

关于javascript - jQuery 延迟和 promise - 错误 : Object doesn't support property or method 'then' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com