我有6条消息列表。 我想检索前2条消息,然后检索2条旧消息。 结果我只收到前2条消息
在他们的文档中,它是如何检索先前的消息。
// There should only be one single instance per channel view.
var prevMessageListQuery = groupChannel.createPreviousMessageListQuery(); //this from sendbird instance
prevMessageListQuery.limit = 2;
prevMessageListQuery.reverse = true;
// Retrieving previous messages.
prevMessageListQuery.load(function(messages,error) {
if (error) {
return;
}
console.log(messages);
});
我从sendbird技术支持处得到的消息告诉我嵌套该函数,然后等待它接收回调。我尝试做一个Promise函数,但仍然仅前2条消息得到相同的结果。 这是我尝试检索以前的消息的功能
// There should only be one single instance per channel view.
loadPreviousMessages=(prevMessageListQuery=null)=>{
if(prevMessageListQuery==null){
prevMessageListQuery = groupChannel.createPreviousMessageListQuery(); //assigning from sendbird instance
}
prevMessageListQuery.limit = 2;
prevMessageListQuery.reverse = true;
// Retrieving previous messages.
return new Promise((resolve,reject)=>{
prevMessageListQuery.load(function(messages,error)=>{
error ? reject(error):resolve([messages,prevMessageListQuery]) { // returning prevMessageListQuery because they said,i need to use the old object rather than assigning new object
}
})
}
tryLoad=()=>{
var data
this.loadPreviousMessages().then((result)=>{
console.log(result[0])
data = result[1]
})
setTimeout(()=>{ //using settimout to make sure data stored first and to mimic load previous messages
this.loadPreviousMessages(data).then((result)=>{
console.log(result[0])
})
},2000)
}
我仍然得到相同的结果。 我仍然不了解他们所说的,关于使用嵌套回调并等待再次使用此方法之前要接收回调。