2016-09-03 259 views
0

我試圖返回一個我所做的api調用的結果,但我一直在獲取undefined作爲輸出。這裏的代碼:從回調函數返回一個變量javascript函數

function getProjects() { 
    var message; 
    gapi.client.dolapoapi.getProject({ 
    'appid': "test4" 
    }).execute(function(resp) { 
    if (!resp.code) { 
     //get the response and convert it to a string 
     message = JSON.stringify(resp); 
     //console.log(resp); i get the correct output here 
    } 
    //console.log(message); i get the correct output here 
    }); 
    //console.log(message); it returns undefined. 
    return message; 
} 

我不知道什麼可能是錯的。但我想要做的就是回到它的位置分配後的消息變量是什麼:

message = JSON.stringify(resp); 

回答

2

傳遞一個函數作爲回調,當異步操作完成的呼叫與數據作爲參數的函數。

function getProjects(callback) { 
    var message; 
    gapi.client.dolapoapi.getProject({ 
    'appid': "test4" 
    }).execute(function(resp) { 
    if (!resp.code) { 
     //get the response and convert it to a string 
     message = JSON.stringify(resp); 
     //console.log(resp); i get the correct output here 
    } 
    if(callback && typeof callback == "function") { 
     callback(message); 
    } 
    }); 
} 

getProjects(function(message) { 
    //using a callback to get the data 
    console.log(message); 
}); 
+1

謝謝。能夠實施它。 –

+0

@DolapoToki upvote和接受,如果它的工作 – Iceman