在我的控制器中的“视图”方法之前使用过,node-async但我想尝试使用q.
我目前正在尝试转换它
exports.view = function (req, res) {
    var category = req.params.category,
        id = req.params.id,
        ip = req.connection.remoteAddress,
        slug = req.params.slug,
        submission,
        userId = typeof req.session.user !== 'undefined' && req.session.user.id ? req.session.user.id : null,
        views;
var getSubmission = function (submissionId, callback) {
    Submission.getSubmission({
        id: submissionId
    }, function (err, submission) {
        if (err) {
            callback(err);
        } else if (submission) {
            callback(null, submission);
        } else {
            callback(err);
        }
    });
};
async.waterfall([
function (callback) {
    getSubmission(id, callback);
},
function (submission, callback) {
    res.render('submission', {
        title: submission.title + ' -',
        submission: submission
    });
}]);
要使用 q... 我开始做类似的事情:
var getSubmission = function(id) {
  return Submission.getSubmission({
    id : submissionId
  }).then(function(submission) {
    return submission;
  });
};
q.fcall(getSubmission).then(function(submission) {
  console.log(submission);
});
但它并没有像我预期的那样工作。我在这里做错了吗?我怎样才能做到这一点?