当您进行异步调用时,通常必须向其传递回调以处理结果。
这对于阅读代码的人来说是违反直觉的。我们通常考虑做什么,然后考虑稍后要做什么,但在这种情况下,我们需要在定义首先运行的动作之前定义如何处理结果。
示例:
W {A: P, W: U, g: ye}
我已经看过(并且我在java中实现了自己)其他模式,在这种模式中,您首先获取异步调用以获取操作的标记,然后将回调注册到它。
如果在回调寄存器之前运行了异步操作,那么它(回调)被同步调用它还没有被运行它就像正常回调一样工作,然后运行它。
示例(伪代码):
$.ajax({
url : url1,
success: function(data) {
data1 = data;
if(data2) perform();
},
});
这种模式的名称是什么?
答案 0 :(得分:0)
Promises, Futures, or Deferreds是回调管理器,用于链接后续异步代码,以避免嵌套回调。
在JavaScript中,承诺已在Promises/A+中形式化,但有许多实现可能会或可能不会遵循正式标准,例如jQuery的Deferreds pre version 3。