gpt4 book ai didi

javascript - 异步分配 View 的值

转载 作者:行者123 更新时间:2023-11-29 22:10:44 25 4
gpt4 key购买 nike

我只是启动 Node 并尝试适应异步行为,但在渲染 View 时我遇到了分配值的问题。代码库非常简单:

在自定义模块中:

var fs = require('fs')

exports.drawCard = function (color, callback) {
fs.readFile(color, 'utf-8', function(err, data) {
if (err) { callback(err); return }
var card = sample(data.split(/\n/))
callback(err, card)
})
}

在路由文件中:

exports.index = function(req, res){
var deck = require('./../deck.js')

console.log(newCard)
res.render('index', {
title: 'Bits AH',
//This is what I would like
card: deck.drawCard("green")
})
};

我知道这不是您分配变量的方式,但这是我追求的总体思路。我想不出代码/Node 的方式来完成这个简单的任务

最佳答案

这是你想要的吗?

exports.index = function(req, res){
var deck = require('./../deck'); // No .js required

deck.drawCard(function(err, card) {
if(err) {
res.render('error');
return;
}

res.render('index', {
title: 'Bits AH',
card: card
});
});
};

您将 res.render 调用包装在对 drawCard 函数的回调中,因为在该函数完成之前您无法返回。但是,可以在模块初始化时加载这些文件,然后您可以将 drawCard 函数转换为同步函数,然后您可以像示例中那样使用它。

关于javascript - 异步分配 View 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com