.apply on jquery 推迟

.apply on jquery deferred

我有 2 个延期。一旦一个被拒绝,我需要将 return 值传递给另一个。

$d1.fail(function(){
    $d2.reject.apply($d2,arguments) ;
}) ;

这样做正确吗?

一般

是的,但它向前不兼容。 jQuery 正在更改下一个版本中的延迟 API 以使他们的承诺 Promises/A+ 合规。不再支持 deferred 中的多个值。

因此,为了将来的兼容性,最好用一个参数来解决你的延迟(或拒绝它们)。

也就是说,您的代码很可疑

通常当人们在延迟中延迟时,这是因为 the deferred anti-pattern。承诺链,通常最好使用 .then 创建新的承诺,而不是显式创建新的延迟。这当然也会为您处理错误。