2016-11-22 64 views
0

您好,我需要Firebase的帮助,在我的项目中我有很多空间。当会员选择房间时,它将滚动到底部。但功能滚动到child_added追加之前底部运行。 child_added完成后,我该如何做功能滚动到底?如果我在displayChatMessage添加的提醒,它时刻警惕第一和完成时,它会追加当child_added完成时会做些什么

myDataRef.limitToLast(5).on('child_added', function (snapshot,prevChildKey){ 
    var message = snapshot.val(); 
displayChatMessage(snapshot.key, message.name, message.text'); 

}); 

function displayChatMessage(key,name,text){ 
var html = '<div id="'+key+'">'+name+'</div>'; 
$('#addhere').append(html); 
} 
+0

请告诉您正在使用哪个前端客户端 –

回答

1

因为asynchronous其execution.When你执行一些synchronously,你等待它在移动到另一个任务之前完成。当你执行asynchronously时,你可以在完成之前转移到另一个任务。 在你的情况下,你需要在displayChatMessage追加&之后调用你的函数scroll_to_bottom(),因为你应该使用回调函数。 请参阅使用回调的下面的例子..

全局变量

​var allUserData = []; 

通用logStuff函数打印到控制台

​function logStuff (userData) { 
if (typeof userData === "string") 
{ 
    console.log(userData); 
} 
else if (typeof userData === "object") 
{ 
    for (var item in userData) { 
     console.log(item + ": " + userData[item]); 
    } 
}} 

//采用两个参数的函数,最后一个回调函数

function getInput (options, callback) { 
allUserData.push (options); 
callback (options); 
} 

//当我们调用GetInput功能,我们通过logStuff作为一个参数。 //所以logStuff将是会叫回来(或执行)的getInput函数内部的功能

getInput ({name:"Rich", speciality:"JavaScript"}, logStuff); 

//名称:Rich //专业:JavaScript`

+0

Hi Phuc Vo !! 你也可以接受我的回答,如果它对你有用:) –

相关问题