2016-04-13 18 views
0

ノードjsの非同期モジュールを使用して並列に2つのタスクを実行しようとしています。 私は、コードを実行すると、私はこのエラーを取得:非同期並列ノードjsの問題

文字列が機能

TypeError: string is not a function 
    at /Users/Username/expressStarter/node_modules/async/lib/async.js:718:13 
    at async.forEachOf.async.eachOf 

私のコードではありません。

router.get('/', function(req, res, next) { 
    async.parallel([getIOSData(), 
    getAndroidData()], function(){ 
    console.log('done'); 
    }) 
    res.render('index',{title: "Reviews"}); 
}); 

答えて

1

これは動作するはずです:

async.parallel([getIOSData, 
    getAndroidData], function(){ 
    console.log('done'); 
}) 

編集:外部(非同期)ではなく、コールバック関数でページをレンダリングする必要があります。

router.get('/', function(req, res, next) { 
    async.parallel([getIOSData(), 
    getAndroidData()], function(){ 
    console.log('done'); 
    res.render('index',{title: "Reviews"}); 
    }) 
}); 
+0

これは機能しました。ありがとう! –

+0

これは実際には私が期待したように動作しませんでした。私のコードは次のとおりです:router.get( '/'、function(req、res、next){ async.parallel([getIOSData、 getAndroidData]、function(){ console.log( 'done'); }}) ; res.render( 'index'、{title: "Reviews"}); });今すぐlocalhostにヒットする必要があります:呼び出される両方の関数の2回の3000リフレッシュ。私は一度にそれを呼びたいと思う。 –

+0

私の編集を見てください – krakig