angularjs $http.jsonp 成功数据在别处访问

angularjs $http.jsonp success data access it elsewhere

如何在$http.jsonp()请求之外访问$scope或者$http成功获取的数据?

$http.jsonp('http://example.com/?callback=JSON_CALLBACK')
    .success(function(data) {
        $scope.info1 = data.name;
        $scope.info2 = data.company;
    });

console.log("access it here outside: ",$scope.info1);

当前控制台打印未定义。

感谢您的帮助。

您不应将异步 ajax 调用视为以同步方式工作。您必须等到 ajax/promise 完成。尽管不使用 .success/.error 它们已被弃用,但请使用 .then 来链接承诺。

你必须依靠承诺才能得到承诺resolve/reject.

代码

var promise = $http.jsonp('http://example.com/?callback=JSON_CALLBACK')
promise.then(function(response) {
    var data = response.data;
    $scope.info1 = data.name;
    $scope.info2 = data.company;
    console.log("access it here outside: ",$scope.info1);
    myOtherFunction($scope.info1);
})
.catch(function(error) {
    console.log(error);
});