0
我得到一個幾乎和我一樣的錯誤。然後在我的異步調用完成之前觸發。我意識到我正在循環的API後,但我目前只用1然後似乎在異步返回值之前觸發值
服務數組大小嚐試它:
this.saveTags = function (tag) {
$http({
method: "POST",
url: '/api/projects/' + data.Id + '/tags',
data: ({ Name: tag.Name })
}).then(function (response) {
console.log(response.data)
if (typeof response.data === 'object') {
return response.data;
} else {
// invalid response
return $q.reject(response.data);
}
}, function (response) {
// something went wrong
return $q.reject(response.data);
});
控制器:
tags.forEach(function(tag) {
counter++;
data.saveTags(tag).then(function(data) {
console.log(data)
});
});
錯誤:
我認爲這個問題可能來自data.saveTags(標籤)。然後(函數())沒有返回任何 – allencoded
另外,我有更好的體驗,當我分配結果$ http到一個變量並使用variable.then(...);.除此之外,這是非常好的結構和一個很好的答案。 – MBielski
@allencoded不確定你的意思。你報告的錯誤顯示你正試圖在未定義的地方調用'then'。你的'saveTags'函數沒有用'then'方法返回一個對象。如果你返回deferred.promise,即使你的$ http調用沒有返回結果,你仍然會用'then'方法返回一些東西,這樣可以避免錯誤。 –