我有以下功能
function commentCount(id) {
var deferred = new $.Deferred()
var url =
_spPageContextInfo.siteAbsoluteUrl +
"/_api/lists/getByTitle('Comments')/items?$select=Id&$filter=ItemID eq " +
id +
" and Title eq 'Colleague'"
getData(url).then(function(data) {
deferred.resolve(data.d.results.length)
})
return deferred.promise()
}现在,我想返回HTML字符串中的值,如下所示,但它显示了object对象
'<div class="card-footer"> <div class="row "><div class="col-lg mobile-center"><a href="#">' + commentCount(item.Id)我怎么能得到那样的价值?
发布于 2018-11-23 23:44:58
您的函数正在返回一个承诺,在获取数据之前,您必须解析该承诺。
它还使用了一个不必要的$.Deferred,因为getData()返回了一个承诺
应该是这样的:
function commentCount(id) {
var url ='....';
// return the getData promise
return getData(url).then(function(data) {
// return the count to next `then()` in chain
return data.d.results.length
})
}
commentCount(someId).then(function(count){
// do stuff with your html here
var str ='<div> Count:' + count + '</div>';
})https://stackoverflow.com/questions/53453873
复制相似问题