搜尋

首頁  >  問答  >  主體

javascript - 非同步取得的資料怎麼return出去

如圖,用ajax非同步獲取到了數據,怎麼把數據回到上一層。 。 。如圖所示,怎麼才能讓第二個return的值是非同步取得傳回的資料

我想大声告诉你我想大声告诉你2777 天前454

全部回覆(3)我來回復

  • 仅有的幸福

    仅有的幸福2017-05-16 13:14:20

    樓上說得對,用promise

    get:function(){
        return new Promise(function(resolve,reject){
            //ajax...
            $.post("test.php",function(response){
                resolve(response)
            })
            //如果有错的话就reject
        })
    }

    使用

    get().then(function(response){
        //response
    }).catch(function(err){
        //错误处理
    })

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:14:20

    要嘛改成同步的,要嘛用回調,你的return沒用的

    get:function(callback){
        $.post(.....,function(res){
            callback(res)
        })
    }
    
    get(function(res){
        console.log(res);
    })
    

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 13:14:20

    弄成Promise吧

    return Promise.resolve($.post(url,data));

    回覆
    0
  • 取消回覆