我有以下代码
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函数中执行我的代码,我可以访问返回的对象。如何将返回的对象存储在变量中,以便我可以在父函数中使用该对象而不是成功函数?
答案 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);
});
}