2017-07-18 35 views
0

我在文件help.js中有一個自定義模塊,函數名稱爲getfriends(req,res,next,user)。用戶是我想要獲得的朋友。自定義模塊數據成功返回但不顯示

for (var i = 0; i < users.length; i++) { 
    for (var j = 0; j < docs.length; j++) { 
    if (docs[j].user1 == users[i].username) { 
     if (docs[j].user1 != req.body.user) { 
     friends.push(users[i]); 
     } 
    } else if (docs[j].user2 == users[i].username) { 
     if (docs[j].user2 != req.body.user) { 
     friends.push(users[i]); 
     } 
    } 
    } 

    if (i == users.length-1) { 
    console.log("friends",friends); //it displays my desired result and so I think the return is successfull 
    return(friends); 
    } 
} 

現在我收到數據,我這樣做,並沒有顯示數據。

console.log(Help.getfriends(req,res,next,req.session.user)); 

我曾嘗試這樣做: -

somevar = Help.getfriends(req,res,next,req.session.user); 
console.log(somevar); 

該模塊被調用,它顯示的是完美的結果。請指導我如何從自定義模塊中正確獲取數據。 另外,上面我已經做了,

var Help = require('./help'); 

回答

1

你的功能是異步的。
當你console.log(...) <== there is no result yet.
所以我認爲你console.log undefined

有關更多信息nodejs asyncronous nature

+0

是的,但我不能做回調的場景在這裏了,我想: - Help.getfriends(REQ,資源,未來,req.session.user,功能(ERR,朋友){ 的console.log(朋友); //不打印任何東西 )}; 那麼我能做些什麼來從這樣的事情獲取數據,試圖承諾同樣的產出,即沒有? – Asim

+0

你必須明白,在大多數情況下,你使用現有的基礎設施,在其他人創建你的。 – Lazyexpert