Ejs中如何处理回调响应
How to handle callback responses in Ejs
在我的 Node.js 应用程序中,我想在 Ejs 代码中调用一些异步函数并呈现结果。我试过了:
<ul>
<% setTimeout(function () { %>
<% supplies = [1, 2, 3, 4]; %>
<% for(var i=0; i<supplies.length; i++) {%>
<li><%= supplies[i] %></li>
<% } %>
<% }, 1000) %>
</ul>
不过好像不行。为什么它不起作用,我该如何解决?
好吧,看来Ejs不支持这样的功能,不过我们可以做的是deasync使用deasync
模块的功能。
<% function foo (timeout, callback) { %>
<% setTimeout(function () { %>
<% callback(null, [1, 2, 3, 4]; %>
<% }, timeout); %>
<% } %>
<% var Deasync = require("deasync") %>
<% var fooSync = Deasync(foo) %>
<ul>
<% supplies = fooSync(1000); %>
<% for(var i=0; i<supplies.length; i++) {%>
<li><%= supplies[i] %></li>
<% } %>
<% }, 1000) %>
</ul>
在我的 Node.js 应用程序中,我想在 Ejs 代码中调用一些异步函数并呈现结果。我试过了:
<ul>
<% setTimeout(function () { %>
<% supplies = [1, 2, 3, 4]; %>
<% for(var i=0; i<supplies.length; i++) {%>
<li><%= supplies[i] %></li>
<% } %>
<% }, 1000) %>
</ul>
不过好像不行。为什么它不起作用,我该如何解决?
好吧,看来Ejs不支持这样的功能,不过我们可以做的是deasync使用deasync
模块的功能。
<% function foo (timeout, callback) { %>
<% setTimeout(function () { %>
<% callback(null, [1, 2, 3, 4]; %>
<% }, timeout); %>
<% } %>
<% var Deasync = require("deasync") %>
<% var fooSync = Deasync(foo) %>
<ul>
<% supplies = fooSync(1000); %>
<% for(var i=0; i<supplies.length; i++) {%>
<li><%= supplies[i] %></li>
<% } %>
<% }, 1000) %>
</ul>