2016-11-22 63 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 !! 你也可以接受我的回答,如果它對你有用:) –

相關問題