javascript - Angular 1 Promise 调用 http 可以工作,但不能使用 json 结构中的虚假数据,promise.then 不是函数

标签 javascript angularjs promise angular-services

我有 AngularJS Controller ,可以很好地返回 $http 数据,但我只需要返回一些硬编码的 json 结构数据,但我得到了 Promise.then 不是一个函数。

似乎没有返回,就像我需要再次返回一样?

Controller :

 var promise = hearingFactory.getHearingSummary();

    promise.then(function (response) {
        vm.myData = response;
        console.log('getHearingSummary promise data', vm.myData);
    }, function (err) {
        console.log('err', err);
    });

服务

var hearingFactory = function ($http) {
    var factory = {};

    factory.getHearingSummary = function () {

        var url = "";
        url = baseUrl + "lib/questions";
        url = "test.json"

        //WORKS

        return $http.get(url).then(function (result) {
            console.log('service',result.data);
            return result.data;

        });

       // DOESN"T work  ( I comment out the above code)

        return {
            "flightData": [
                {
                    "MultiCarrier": false,
                    "Id": "O1"
                }
            ] 

        }

    }

    return factory;

};
  1. 我的 Controller 代码和整体服务代码都没有问题
  2. 似乎 .then 中 $http 的双重返回 promise “有效”
  3. 也许我需要一个真正的 json 数据结构的“ promise ”,如果是这样,我该怎么写?

最佳答案

第一个“有效”,因为 .then() 产生了一个 promise 。您的第二个 return 语句返回一个普通对象,这不是一个 promise 。您尝试对非 promise 的内容调用 .then

所以返回一个 promise :

return $q.when({
    "flightData": [
        {
            "MultiCarrier": false,
            "Id": "O1"
        }
    ] 
});

关于javascript - Angular 1 Promise 调用 http 可以工作,但不能使用 json 结构中的虚假数据,promise.then 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49121948/

相关文章:

asp.net - 在javascript中设置资源字符串

javascript - 将 Firebase 中的数据填充到我的空数组中

javascript - JS - 未处理的 promise

javascript - 无法绑定(bind)到 'ngSwitchDefault',因为它不是 'ng-template' 的已知属性

javascript - 如何在翻转的 div 上正确处理鼠标悬停?

javascript - 如何在 Google Chrome 扩展中构建 HUD?

javascript - jQuery 中 deferred.resolveWith() 在哪里定义?

javascript - Deferred Promise - 在每个函数完成后一个一个地运行函数

javascript - Jquery slider 效果 -- 像 "reveal"

javascript - 如何在 AngularJS 中访问 json 中的值