【发布时间】:2025-12-25 07:05:06
【问题描述】:
我正在使用 angularJS 和 SLIM PHP restful 服务器,PHP 服务正在运行,实际上我已经使用 $http.get() 在这个应用程序中没有任何问题...... 但是现在发生了一件奇怪的事情,我以与其他函数相同的方式创建了一个新函数,它得到 .success(function(data)) 没有问题,我实际上可以 console.log(data) 并且它显示正确结果,但是当 .success() 完成并返回时,我收到一个未定义的结果。 ps:浏览器控制台没有错误。
var markerOptions = [];
loadMarkers();
console.log(markerOptions);
function loadMarkers() {
$http.get('http://localhost/rest/getMarkers').success(function(response){
console.log(response);
markerOptions = response;
});
}
- success() 中的 Console.log() 返回正确的数据
- loadMarkers() 后的 Console.log() 返回 undefined
【问题讨论】:
-
由于
$http.get是异步的,因此在您的同步代码启动时,它的结果不会立即可用。这就是为什么您的console.log在success之外是空的。 -
顺便说一句,这是一个非常常见的痛点,值得一劳永逸地头疼。
-
嗯,我明白了,非常感谢 Marc。我现在正试图以角度实现这个解决方案.. 但是你再次告诉我路径。
-
上面文章中的*答案作为入门非常棒,然后您可以阅读Angular中的documentation on
$q以获得更多思考。