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 应该使用新的承诺来完成。
在我的 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 应该使用新的承诺来完成。