.then(...)内部分配的值不持久

时间:2018-08-14 01:17:29

标签: javascript

        var dataObj = [];

        // Get data service

        VSS.getService(VSS.ServiceIds.ExtensionData)
            // the callback on the next line returns x` promise, which the JavaScript engine will follow, so you don't need to nest the next `then`
            .then((dataService) => dataService.getDocuments('MyCollection3'))
            .then((docs) => {
                // keep a reference to the element instead of searching for it in each loop.
                console.log(docs)
                tempi = 0;
                for (const doc of docs) {
                    dataObj[tempi] = {
                        name: doc.name,
                        projected: doc.projected,
                        actual: doc.actual,
                        le: doc.le,
                    }
                    tempi++;
                }
                console.log(dataObj)
            });


        var i = 0;

        console.log('fin', dataObj)

VSS.getService()连接到Microsoft的VSTS扩展套件提供的数据存储。我在分配前声明一个空数组,然后将对象分配到getService内部的数组中。

我成功获得了docs,但是当我将其打印出来时,它给出了一个空数组[]

我如何使其持久?

1 个答案:

答案 0 :(得分:0)

您是否有任何理由在循环中使用const?

for (const doc of docs) {

因为这意味着doc始终是原始文档,并且永远只能是原始文档。