JSON 数据中的延迟响应 angular js 中的本地机器

delay response in JSON data which is local machine in angular js

在我的 angular 申请中 有函数 init(); 我从 5 月开始打电话给 javascript

然后是getMonthlyNews函数,在init()之后调用

function init() {
    configService.getResponders().then(function (data) {
        apiUrl = data;
    });
}

正在从本地 js/ 文件夹中的 JSON 文件获取一些设置

(function(){
  app.factory("configService", ['$http', function ($http) {
    return {
        getResponders: function () {
            return $http.get('assets/js/service/config.json')
            .then(function (res) {
                console.log("Data " + res.data.url);                                   
                return res.data.url;
            });
        }
    };
  }]);
})();

json 文件

{ "url":"http://localhost:6790//api/getNews/" }

function getMonthlyNews() {
    var method = 'Search'
    var url = apiUrl + method;
}

在 js 文件中调用 init 函数后,我需要使用服务

获取位于本地 js 文件夹中的 apiUrl 表单 json 文件

要获得该值,我必须调用

当我调用 init 函数时,它需要时间和 return 一段时间后的值 但是那个时间间隔我的函数 getMonthlyNews 已经执行了一个未定义的错误所以我必须添加一个像这样的 setTimeOut 函数

setTimeout(function () { getMonthlyNews(); }, 200);

那么如何处理这种延迟或任何其他想法

您错误地对待承诺。所有假定 promise 完成的代码都应该在它的 then 函数中。

var promise;
function init() {
    promise = configService.getResponders().then(function (data) {
        apiUrl = data;
    });
}

...

function getMonthlyNews() {
    promise.then(function() {
        var method = 'Search'
        var url = apiUrl + method;
    })
}

获取 url 应该使用新的承诺来完成。