2017-05-09 3 views
0

プロビジョニングが解決されたら関数のthenをトリガーするのに問題があります。下のコードでは、nunjucksコールバックのconsole logのhtmlが表示されているので、その点までうまくいきます。しかし、呼び出し関数のthenには何も戻ってこない。 問題は何ですか?前もって感謝します!プロミスは解決していますが、ノードの.then()関数をトリガーしません。

function generate(data, schema, partials) { 
    var formTitle = schema.title; 


    var defered = q.defer(); 

    nunjucks.render('test.html', { formTitle: formTitle },function(err, 
html) { 

    if (err) { 
     console.log('nunjucks error ', err); 
     return defered.reject(); 
    } 
    console.log('nunjucks render ok..', html); // html logging fine here 
    // This seems not to work 
    q.resolve(html); 
    }); 


    return defered.promise; 

} 

これは関数呼び出しです。

formTemplater.generate(data, schema, { 
    header: fs.readFileSync('./header.html', 'utf8'), 
    footer: fs.readFileSync('./footer.html', 'utf8') 
}).then(function(html) { 
    // nothing works here 
    console.log('nunjucks back with html :: ', html); 
    fs.writeFileSync('./results.html'); 
}); 

答えて

4

この:迅速な対応のための

defered.resolve(html) 
+0

ありがとう:

q.resolve(html) 

がこのであるべき。私はdefered.resolve()を試してみましたが、私は打ち間違えてしまったと思うので、うまくいきませんでした。しかし、もう一度試してトリックをやった。乾杯! – mikeym

関連する問題