[英]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.