有一个div里面填充好多数据,这些数据又是根据不同接口而来,如何知道这个div的最终高度?

场景:一个页面有一个div,里面有几块数据,这些数据都是几个接口返回后填充上去,然后把div高度撑起来,现在需要知道这个div最终的高度,然后用这个高度去做别的事情,要怎么样才能确定他的高度不再变化了呢?

现在是setTimeout等1S之后再去拿高度,但是感觉不靠谱,有没有更好的方法?

阅读 2k
2 个回答

这种场景一般是记录所有接口都返回结果了才去获取div的高度,可以使用:
1、使用Promise.all方法,等所有结果都返回了,在回调中处理

Promise.all([req1, req2]).then(([res1, res2]) => {
    // 这里获取div高度
})

2、定义一个变量来记录已经返回结果的接口数量,定义个方法来判断,每个接口返回里面都执行一下这个方法

let reqCount = 0;
function checkAllReq() {
    // 这里假设总共有5个接口请求
    if(++reqCount === 5) {
        // 这里获取div高度
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题