1
我使用節點異步的,我想一個變量傳遞給它使用的第二個參數中的方法......例如:想傳遞一個變量節點異步的地圖方法
async.map(submissions, addScore, function(err, submissions) {
if (submissions) {
return submissions;
}
});
我想通過與addScore
沿userId
但我不知道如何做到這一點。
addScore
是我的方法,我在每一個提交調用,它需要一個userId
。
不太對我的情況下工作。我修改了一下,但我得到undefined不是一個函數。如果我將它從函數閉包中取出,它甚至不會進入我的addScore()函數。 http://pastebin.com/u4AMmSz3你能解釋我在做什麼錯了嗎? – 2013-05-08 03:52:59
您需要使'addScore'函數成爲'createAddScore'函數的返回值。這樣,你可以調用'createAddScore'傳遞一個'userId',返回一個'addScore'函數,當被async調用時''userId'可用於返回的函數。在javascript中查看關於閉包和範圍的詳細信息:http://stackoverflow.com/questions/111102/how-do-javascript-closures-work http://stackoverflow.com/questions/2858340/javascript-inner-function -scope-chain – 2013-05-08 04:01:24
好孩子謝謝。我意識到最初搞砸的是額外的回調,即'map'作爲第二個參數傳入......所以我在''內執行'return function(submission)'而不是'return function(submission,fn)'' createAddFunction',所以它不會異步執行,因此完成得太快。謝謝您的幫助。 :) – 2013-05-08 04:18:02