无法在函数外部获取对象

时间:2015-07-24 16:48:48

标签: javascript

我有以下代码

function test(){
var api_url = "/Test/";

api.CFClient.load(api_url,function(success){

  success.images; // Object with images 
},function(error){

});

// More code to use the images returned. 

我基本上无法从成功功能中获取图像。如果我在success函数中执行我的代码,我可以访问返回的对象。如何将返回的对象存储在变量中,以便我可以在父函数中使用该对象而不是成功函数?

3 个答案:

答案 0 :(得分:0)

我认为api.CFClient.load是异步的,在这种情况下,在调用success.images函数后,您无法在test()函数中立即访问load。当ajax请求完成时,它将在未来的某个未知时间提供。你必须在成功回调中调用一个不同的函数,并在那里做你需要做的任何事情,或者在成功回调函数中直接做你需要做的事。

答案 1 :(得分:0)

您需要考虑异步的成功功能。在api呼叫完成之前,您将无法使用返回的图像。如果是,您可以调用另一个函数并传递图像。

function test(){
    var api_url = "/Test/";

    api.CFClient.load(api_url,function(success){

       useImages(success.images); 

    }, function(error){
});

function useImages(images) {
    // do something with images here...
}

答案 2 :(得分:0)

SO充满了这样的错误(异步工作流程),只是google for ...

function test(){
  var api_url = "/Test/";
  function useImages(err, images) {
    if (err) return console.error(err);
    console.log(images);
  }
  api.CFClient.load(api_url,function(success){

    useImages(null, success.images); 
  },function(error){
    useImages(error);
  });
}