我相信,这是导致这个问题的原因。我看过这里和这里,但我仍然不明白发生了什么。当我登录到控制台时,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);
});