Promise 正在解析但不触发 .then() 节点中的函数
Promise is resolving but not triggering .then() function in Node
一旦承诺得到解决,让函数的 then 触发时出现问题。我可以在下面的代码中的 nunjucks 回调的 console log
中看到结果 html,所以我知道它在这一点上工作正常。但是,调用函数的 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');
});
这个:
q.resolve(html)
应该是这样的:
defered.resolve(html)
一旦承诺得到解决,让函数的 then 触发时出现问题。我可以在下面的代码中的 nunjucks 回调的 console log
中看到结果 html,所以我知道它在这一点上工作正常。但是,调用函数的 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');
});
这个:
q.resolve(html)
应该是这样的:
defered.resolve(html)