簡體   English   中英

使$ .getJSON成為通用函數

[英]make $.getJSON into a general purpose function

由於我經常使用這種類型的通話,因此我希望使其可重用:

function getJSON(cmd){
   $.getJSON(cmd, function(data) {
   }).done(function(data) {
       return data;
   }).fail(function() { console.log('Server failed!') });
}

我希望這樣使用它:

function susbcribe(id){
   var cmd = 'subscribe.php?='+id;
   var obj = getJSON(cmd);
   console.log(obj);    
}

但是javascript會在異步json甚至可以將任何內容返回給obj之前運行console.log。

只是要清楚-我知道我可以在.done()中執行代碼,但是因為我經常使用它,所以我希望一遍又一遍地重寫同一函數。

所以問題是:有沒有一種方法可以使js停止並等待getJSON完成並向obj返回內容?

按照目前的情況,您每次至少必須編寫done函數。 您不能通過假裝不存在來逃避回調地獄。

有一些方法可以通過巧妙地使用Promise來避免某些問題,但是對於簡單的事情,這幾乎和獲得的結果一樣簡單。 在2025年之前,我們將獲得發電機/迭代器的支持。

您可以將fail函數設置為全局“ ajax事件”處理程序,以避免每次都要鍵入錯誤處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM