您好我一直在尝试使用promise技术等待for循环中的调用执行。但是我无法坚持下去。
“return mainArr”给出未定义的
//导出CSV
循环
//Assumes data is a json object list.
function getCustomData(data){
var mainArr=[];
for (var i = 0; i < data.length; i++) {
var obj={};
obj.word = $('#type-ahead-input').val();
obj.synonym = data[i].word;
obj.similarityCount = (data[i].similarityCount).toFixed(2);
obj.emailCount = data[i].occuranceCount;
obj.synonymlist = getSynonymList(data[i].word);
mainArr.push(obj);
}
return mainArr;
}
function getSynonymList(inputWord){
return WordService.getSynonymList({
ids : inputWord
}).$promise
.then(function($response) {
var output = $response;
var wordList =[];
for (var i = 0; i < output.length; i++) {
wordList.push(output[i].word);
}
return wordList;
});
}
工厂资源呼叫签名
getSynonymList : {
method : 'GET',
isArray: true,
async : false,
url : appRoot + '/synonym',
params : {
word : '@word'
}
},
答案 0 :(得分:1)
您需要将值推送到promises数组中,并使用<th rowspan="3">#</th>
来解析多个承诺
.table {
border: 1px solid #ccc;
}
.table td,
.table tr,
.table th {
border: 1px solid #ccc;
}
然后您可以使用回调
调用返回值<h1>TEST</h1>
<table class="table">
<thead>
<tr>
<th rowspan="3">#</th>
<th rowspan="3">Title 1</th>
<th colspan="3">Title 2</th>
</tr>
<tr>
<th>I</th>
<th>II</th>
<th>III</th>
</tr>
<tr>
<th>- Lorem ipsum dolor.<br> - Lorem ipsum dolor<br> - Lorem ipsum dolor </th>
<th>Lorem ipsum dolor</th>
<th>Lorem ipsum dolor</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">1</td>
<td>Lorem ipsum dolor<sup>*1</sup><br> a)lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
<tr>
<td>b) Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
<td>Lorem ipsum dolor</td>
</tr>
</tbody>
</table>
这适用于您的两个函数,因为您正在使用循环。 (请注意,我没有实现上面的代码,但应该为您提供一个大纲)