Dust.js 无极数组
Dust.js Promise Array
我对解析 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" } ]
任何人都知道我做错了什么,这是预期的行为还是错误?
原来你必须自己循环...
{#async}
{#.}
{name}
{/.}
{/async}
你的回答是正确的。目前整个数组被推送到上下文中,因此您必须遍历上下文:
{#async}
{#.}
{name}
{/.}
{/async}
使用该版本,您可以按照预期迭代返回的数组。
{#async}
{name}
{/async}
我对解析 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" } ]
任何人都知道我做错了什么,这是预期的行为还是错误?
原来你必须自己循环...
{#async}
{#.}
{name}
{/.}
{/async}
你的回答是正确的。目前整个数组被推送到上下文中,因此您必须遍历上下文:
{#async}
{#.}
{name}
{/.}
{/async}
使用该版本,您可以按照预期迭代返回的数组。
{#async}
{name}
{/async}