在我的剧本,我需要检索字典来编码值转换为名称:有条件承诺
$.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
查看已发布的答案。这就是这些人试图解释的。 –