在下在做一个很简单的东西,需要用名字在数据库中查询,但是无法动态的得到名字,已经试过了如果where语句中改为receive_user:'我想要查询的名字'就可以正确返回数据,但是按如下来写就无法正确返回数据。
// pages/myMessage/myMessage.js
constdbwxclouddatabase()
constuserdbcollectionuser
constmessagedbcollectionmessage
Page
/**
* 页面的初始数据
*/
data
name''
messageList[]
nameNumnull
OPENDIDnull
},
//调取云函数获取用户opendId,用于判断信息来源
getOpendId(){
},
/**
* 生命周期函数--监听页面加载
*/
onLoadfunctionoptions
letthatthis
varname''
wxgetStorage
keyuserName
successres
thatsetData
nameresdata
dbcollectionmessagewhere
receive_userthisdataname
get
successfunctionres
thatsetData
messageListresdata
consolelogcaocaocaocaothisdataname
},
在一个函数(比如本例中的onLoad中),如果分为几个函数块,每块执行要花的时间都比较长,这样的话可能不会从头执行到尾,可能会同时开始执行几个函数块。
比如在执行wx.getstorage的同时也开始执行db.collection().where().get()了,这样where里的this.data.name还是空的,所以无法查到
上面只是一种推测,还有一种可能就是wx.getstorage没有get到
也不一定只有这两种可能,也可能是其他情况。不过你可以试试
js的语法写错了。
这代码,看得头疼
使用wx.getStorageSync