首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得递延允诺值jQuery

获得递延允诺值jQuery
EN

Stack Overflow用户
提问于 2018-11-23 23:31:29
回答 1查看 1.7K关注 0票数 0

我有以下功能

代码语言:javascript
复制
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对象

代码语言:javascript
复制
'<div class="card-footer"> <div class="row "><div class="col-lg mobile-center"><a href="#">' + commentCount(item.Id)

我怎么能得到那样的价值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-23 23:44:58

您的函数正在返回一个承诺,在获取数据之前,您必须解析该承诺。

它还使用了一个不必要的$.Deferred,因为getData()返回了一个承诺

应该是这样的:

代码语言:javascript
复制
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>';
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53453873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档