setData,页面的this传引用,“数据更新延迟??”
发布于 6 年前 作者 gli 9303 次浏览 来自 问答

1、有这么个需求,页面1和2有个共同的功能需求——从后端中发起请求,然后将获取到的common_data数据通过setData去更新当前页面的值。然后我想抽象成一个函数,但是不知道数据异步还是啥问题(感觉setData操作只能放在要更新的Page中??)。下面的方法都不行耶

2.1、第一种方式思路  我是想将 要更新的页面的this(引用值??)当做该公共函数的 invoker_this 一参数,然后 invoker_this.setData

2.2、第二种方式 在这个公共函数中,将  res.data 作为返回值 返回(无法返回, res 是一种流数据,不是实体还是啥呀??不太懂),但是这两种似乎都存在 “延迟”(就是点击后面一次的显示结果是上一次点击时的应展示的数据了,我很困惑)

3、总之我想到的方式试了都不太行,但是又不想每个页面都分别 请求、setData,这种不便于维护啥的。

以下是 2种方法的代码编写

1 回复

方法写个回调参数,执行完请求之后,执行回调函数。

function searchResultByKeyword(keyword,cb){

    wx.request({

        success(res){

            cb(res);

        }

    })

}

调用方法:

searchResultByKeyword(‘abc’,function(res){ console.log(res)});

回到顶部