鍍金池/ 問答/Java  HTML/ js ajax 請求問題。

js ajax 請求問題。

在項目中,通過 ajax 請求后臺數(shù)據(jù),并做數(shù)據(jù)處理。最后將處理好的數(shù)據(jù)返回。代碼形式如下:

function funOne(){
    var htmlStr = '';
    $.get(href,{},function(r){
        var data = eval('(' + r + ')');
        $.each(data,function(k,v){
            /*    在該區(qū)域做相應(yīng)的數(shù)據(jù)處理 */
            htmlStr += '<div>' + v + '</div>';
        })
    })
    return htmlStr;
}
以上是代碼的邏輯。問題出現(xiàn)在,ajax 請求內(nèi)部的運算還沒結(jié)束,已經(jīng)返回了結(jié)果,所以函數(shù)調(diào)用的結(jié)果是空的。
該問題如何解決?嘗試過用 while ,但是直接太多蹦掉了。
回答
編輯回答
笑浮塵

$.get(href,{},function(r){

var data = eval('(' + r + ')');
$.each(data,function(k,v){
    /*    在該區(qū)域做相應(yīng)的數(shù)據(jù)處理 */
    htmlStr += '<div>' + v + '</div>';
})
 return htmlStr;

})

2018年7月6日 14:18
編輯回答
凹凸曼

寫一寫

 var getData = new Promise(function (resolve, reject) {

      $.get(href, {}).then(function (r) {
      
        if (r) {
        var data = JSON.parse(r);
          resolve(data);
        } else {
          reject(err);
        }
      })
    })

    getData.then(function (data) {
      // 處理data
    }).catch((err)=>{console.log(err})
2017年9月21日 15:35
編輯回答
局外人
function funOne() {
    var htmlStr = '';
    return $.get(href, {}).then(function (r) {
        var data = eval('(' + r + ')');
        $.each(data, function (k, v) {
            /*    在該區(qū)域做相應(yīng)的數(shù)據(jù)處理 */
            htmlStr += '<div>' + v + '</div>';
        })
        return htmlStr;
    })
}

funOne().then(function(htmlStr){
    console.log(htmlStr)
})
2017年1月6日 15:30