我相信,这是导致这个问题的原因。我看过这里和这里,但我仍然不明白发生了什么。当我登录到控制台时,temp
我得到了1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
预期的结果,但是当我使用var month = $q.defer()
andmonth.resolve(temp)
并尝试记录month.promise
我得到的值[Object object]
而不是与 temp 相同时。
这是应该预期的吗?
如果否- 我做错了什么(这就是为什么我使用 $q.defer()以防它是一个因素)
如果是- 如何转换month.promise
为更易消耗的形式?即如果 temp 是一个数组,我如何month.promise
作为一个数组访问temp[0] = month.promise[0]
下面是我的代码示例,但我的所有控制器和服务都可以在这里找到,我基本上只想将一个数组(或 JSON)返回到我的控制器而不是[Object object]
var month = $q.defer();
$http.get('getMonth.php?date=' + date)
.success(function (data, status, headers, config) {
var temp = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
console.log("Temp : " + temp + " !!!");
month.resolve(temp);
//month.resolve(data);
//console.log("data "+data[0]);
console.log("resolved " + month);
console.log("resolved[0] " + month[0]);
console.log("resolved.promise " + month.promise + " !!!");
console.log("resolved.promise[0] " + month.promise[0]);
});
更新
根据下面@CuongLe 的建议,我添加了以下代码,我可以成功记录我的数据,但是[Object object]
当我返回它时我仍然得到
var promise = month.promise;
promise.then(
function (data) {
console.log(data);
});