获取延迟承诺值 jQuery
get deferred promise value jQuery
我有以下功能
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()
}
现在我想 return HTML 字符串中的那个值,如下所示,但它显示 [object object]
'<div class="card-footer"> <div class="row "><div class="col-lg mobile-center"><a href="#">' + commentCount(item.Id)
我怎样才能获得这样的价值
您的函数正在返回一个承诺,您必须先解决该承诺才能获取数据
它还使用了一个不必要的 $.Deferred
因为 getData()
returns 一个承诺
需要像这样:
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>';
})
我有以下功能
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()
}
现在我想 return HTML 字符串中的那个值,如下所示,但它显示 [object object]
'<div class="card-footer"> <div class="row "><div class="col-lg mobile-center"><a href="#">' + commentCount(item.Id)
我怎样才能获得这样的价值
您的函数正在返回一个承诺,您必须先解决该承诺才能获取数据
它还使用了一个不必要的 $.Deferred
因为 getData()
returns 一个承诺
需要像这样:
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>';
})