我在node.js中看到很多使用next
。javascript node.js next()
這是什麼,它從哪裏來?它有什麼作用?我可以使用它的客戶端?
對不起它的使用,例如這裏: http://dailyjs.com/2010/12/06/node-tutorial-5/
認準loadUser功能。
我在node.js中看到很多使用next
。javascript node.js next()
這是什麼,它從哪裏來?它有什麼作用?我可以使用它的客戶端?
對不起它的使用,例如這裏: http://dailyjs.com/2010/12/06/node-tutorial-5/
認準loadUser功能。
這似乎是Node.js控制流代碼中的一個變量命名約定,其中下一個要執行的函數的引用被賦予回調函數,以便在完成時啓動。
見,例如,代碼樣本這裏:
讓我們來看看您發佈的例子:
function loadUser(req, res, next) {
if (req.session.user_id) {
User.findById(req.session.user_id, function(user) {
if (user) {
req.currentUser = user;
return next();
} else {
res.redirect('/sessions/new');
}
});
} else {
res.redirect('/sessions/new');
}
}
app.get('/documents.:format?', loadUser, function(req, res) {
// ...
});
的loadUser
函數需要在一個函數的第三個參數,它的名字必須是next
。這是一個正常的功能參數。它持有對下一個要執行的操作的引用,並且一旦完成loadUser
即被調用(除非找不到用戶)。
本例中沒有什麼特別的名字next
;我們可以任命它。
這在express.js中也用得相當多,但它不是'.next()'。他似乎會問'next'作爲一個對象的方法。 – Raynos 2011-03-21 22:44:36
更好地使用'return next();' – 2016-11-16 21:40:51
@RyanWalton我同意 – 2016-11-17 18:43:02
它是在需要串行執行動作的情況下傳遞迴調時使用的命名約定,例如,掃描目錄 - >讀取文件數據 - >用數據做一些事情。這優先於深度嵌套回調。在蒂姆·卡斯威爾的HowToNode博客下面的文章前三段給出了一個很好的概述:
http://howtonode.org/control-flow
也看到張貼的第二部分的順序操作部分:
非常感謝這個鏈接。它解釋了很多事情,當開始使用nodejs時 – 2016-04-10 17:32:51
鏈接現在不工作。它給內部服務器錯誤 – Deep 2018-01-02 07:46:52
從互聯網檔案更新的鏈接 – 2018-01-08 06:04:13
我還沒有見過這個地方,它沒有在文檔中的任何地方引用。你確定它沒有在你正在查看的代碼庫中的某個地方定義嗎? – 2011-03-21 22:38:59
這太模糊了。你能舉一個上下文的例子嗎? – Raynos 2011-03-21 22:39:03