Javascript Dust.js Promise数组

Javascript Dust.js Promise数组,javascript,dust.js,Javascript,Dust.js,我对在Dust.js中解析数组的承诺有异议 假设我有一个类似这样的Dust.js函数(为了一个简单的示例,稍后将执行其他操作),它解析一个数组: var doSomethingAsync = new Promise(function(resolve, reject) { // do a thing, possibly async, then… setTimeout(function(){ var items = [{ name: 'One',

我对在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" } ]

任何人都知道我做错了什么,无论这是故意的行为还是一个bug?

结果是,你必须自己循环

{#async}
    {#.}
        {name}
    {/.}
{/async}

你的回答是正确的。当前,整个数组被推送到上下文中,因此您必须在上下文中迭代:

{#async}
    {#.}
        {name}
    {/.}
{/async}
但这是我的

使用该版本,您可以像预期的那样迭代返回的数组

{#async}
    {name}
{/async}

这看起来像一只虫子;我在我们的问题跟踪程序上为您打开了一个问题:这将在2.7.2中修复,但2.7.2已修复。