【发布时间】:2016-04-07 18:20:47
【问题描述】:
我有一个预计会调用 jquery.ajax 的函数,并将其作为承诺返回以供进一步处理。
但是,有时,它有足够的信息来同步进行,而无需 ajax 调用。它仍然需要返回一个承诺,以履行与调用者的合同。这样做的惯用方法是什么?
例如
function f(x) {
return x?
$.ajax({url: "http://myServer", data: x, ...})
: /* what should be here? */;
}
【问题讨论】:
-
你试过
Promise.resolve() -
应该用什么来兑现承诺?这些数据来自哪里?
-
数据在本地可用。为了这个简单的示例,它可以是 {}。 jQuery.when({}) 似乎做我想做的事,而且很简洁。 new Promise.resolve(...) 感觉太重(语法上),这就是我问这个问题的原因
-
@DavidGoldfarb:它是
Promise.resolve({})(不是new),它和jQuery 的when一样轻巧,但使用了正确的promise :-) -
谢谢。哪个被认为更惯用或更易读(在已经使用 jQuery 的代码中)?
标签: javascript jquery ajax promise