对于在Dust.js中解决数组的承诺,我有一个问题
假设我有一个类似于这样的Dust.js函数(这将在后面做一些其他的事情,但为了一个简单的例子),它解析一个数组:
var doSomethingAsync = new Promise(function(resolve, reject) {
// do a thing, possibly async, then…
setTimeout(function(){
var items = [{
name: 'One',
}, {
name: 'Two',
}, {
name: 'Three',
}];
resolve(items);
}, 5000);
});
res.stream('admin/index', {
"async": doSomethingAsync
});我的模板是这样的:
{#async}
{name}
{/async}它似乎没有打印出你想要的。它使用contextDump助手输出以下内容:
[ { "name": "One" }, { "name": "Two" }, { "name": "Three" } ]有人知道我做错了什么,这是故意的行为还是错误?
发布于 2015-06-05 22:03:57
你的回答是正确的。当前整个Array被推送到上下文中,因此您必须遍历上下文:
{#async}
{#.}
{name}
{/.}
{/async}但这是固定在尘埃中2.7.2。
使用该版本,您可以像预期的那样在返回的Array上进行迭代。
{#async}
{name}
{/async}发布于 2015-06-05 18:33:09
结果你得自己循环一下..。
{#async}
{#.}
{name}
{/.}
{/async}https://stackoverflow.com/questions/30673035
复制相似问题