Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何转发jQuery函数的成功和失败回调?_Javascript_Jquery_Design Patterns_Wrapper - Fatal编程技术网

Javascript 如何转发jQuery函数的成功和失败回调?

Javascript 如何转发jQuery函数的成功和失败回调?,javascript,jquery,design-patterns,wrapper,Javascript,Jquery,Design Patterns,Wrapper,出于几个原因,我想包装一些jQuery函数(即ajax),例如参数的全局配置,更重要的是,能够轻松地交换它 我的问题是,如何“转发”.done()和.fail()回调?(哪个设计模式负责jQuery的这种行为?) 为了澄清,我想做的是编写一个函数,该函数封装了上述函数,其行为如下: myWrapper({config: "abc"}).done(function( data ) { // do something }); 如果要执行此操作,需要返回ajax调用 function myW

出于几个原因,我想包装一些jQuery函数(即ajax),例如参数的全局配置,更重要的是,能够轻松地交换它

我的问题是,如何“转发”
.done()
.fail()
回调?(哪个设计模式负责jQuery的这种行为?)

为了澄清,我想做的是编写一个函数,该函数封装了上述函数,其行为如下:

myWrapper({config: "abc"}).done(function( data ) {
    // do something
});

如果要执行此操作,需要返回
ajax
调用

function myWrapper(config) {
    return $.ajax({
        url: "http://url.com",
        data: config
    });
}
然后按照你的建议打电话

myWrapper({ config: "abc" }).done(function(data) {
    // call is done
});

显然,我在上面的代码中做了一些假设,但它应该足够清楚地阐明这一点。如果没有,只需问:)

这个
$。ajax
函数确实返回一个提供这些方法的函数(
done
fail
总是
,最重要的
然后
)。只需从
myWrapper
函数返回该对象。

假设这些方法再次返回相同的promise对象,对吗?因此,如果我在包装器中指定了
.fail
方法,我可以将其用作默认行为并返回promise对象?检查他们的文档<例如,代码>完成
失败
do,
然后不执行。
myWrapper({ config: "abc" }).done(function(data) {
    // call is done
});