我正在某个页面上的GET上初始化一种聊天机器人应用程序。我想:
res.render()
initializeDialogue()
),该函数将启动服务器端java应用程序,然后返回一个JSON对象,其中包含一条必须打印的消息。相同的呈现页面:res.json()
问题是我在同一页面上找不到res.render()
然后res.json()
的方法。我可以
以下是代码的一部分:
router.get('/dialogue', function (req, res) {
// Render the HTML (from dialogue.jade)
res.render('dialogue', { title: 'Dialogue' }, function (err, html) {
// Initialize the dialogue (launch a java child_process, etc.)
// Slow! >2000ms
initializeDialogue(function (err, result) {
// From returned result, send a JSON message to the same page
res.status(200).json({
type: result.type,
speaker: result.speaker,
utterance: result.utterance
});
});
});
});
我在呈现页面之前当然可以initializeDialogue()
,并将JSON消息作为res.render()
的参数传递,但由于initializeDialogue()
进程太重,所以它持续时间超过2秒并且我不希望用户在呈现页面之前等待很长时间(但是他可以在收到第一条消息之前等待很长时间)。
有没有解决方案?