在我的劇本,我需要檢索字典來編碼值轉換爲名稱:有條件承諾
$.ajax({
// retrieve dictionary
})
.done(function(dictionary){
// convert encoded values into names
})
.done(function(){
// run my application
});
但是,有時字典已經被其他應用程序加載,在這種情況下我不需要Ajax調用:
if (dictionary) {
// convert encoded values into names
// run my application
}
else {
$.ajax({
// retrieve dictionary
})
.done(function(dictionary){
// convert encoded values into names
})
.done(function(){
// run my application
});
}
這if/else語句是比較重,有沒有辦法把它縮短:
// load dictionary if needed
// then run my application
注意:我使用$標記來表示我的僞代碼,但我並不一定與jQuery綁定。
我在我的應用程序中做了很多這類事情。你讓你的想法變得圓滑的是,如果數據是異步獲取的,那麼你必須使用異步方法來訪問它,而不管它是否已經被獲取 - 理由在於每一種用法,你都不知道數據立即可用或是否需要提取。 –
@ Beetroot-Beetroot你能解釋一下如何使用異步方法訪問已獲取的數據嗎?也許用代碼或僞代碼發佈答案? – Christophe
查看已發佈的答案。這就是這些人試圖解釋的。 –