困惑的写作jquery延迟调用

时间:2016-10-04 20:14:27

标签: javascript jquery deferred

我是新手使用jQuery延迟以及jQuery本身。我想要做的是调用外部函数。如果调用成功,我想要异步调用另外两个函数。所有这些调用都是我们控制下的javascript库函数。每个格式都是:

伪代码:

    function <libraryFunction>(data) {
        var deferred = $.Deferred();
        $.ajax({
            type: "POST",
            url: url
            data: app.AddAntiForgeryToken({
                .
                .
                .
            }),
            dataType: 'json'
        }).done(function (result) {
            if (result.success === false) {
                deferred.reject({
                .
                .
                .
                });
            } else {
                deferred.resolve({
                .
                .
                .
                });
            }
        });
        return deferred.promise();
    }

我为实现调用这些函数而编写的代码如下:

代码:

var deferred = $.Deferred(),
    promise = deferred.promise();

promise
.then(lib.function1)
.fail(function (value) {
    .
    .
    .
})
.done(function (results) {
    var deferred = $.Deferred(),
    promise = deferred.promise();
    promise
    $.when(promise.then(lib.function2), promise.then(lib.function3))
    .done(function (r1, r2) {
        .
        .
        .
    })
    .fail(function (r1, r2) {
        .
        .
        .
    })
    deferred.resolve(
    {
        .
        .
        .
    })

此代码有效,但我并不觉得我正在使用jQuery正确延迟,特别是在&#39; $。当&#39;。这是正确的,还是有更好的方法来做到这一点?

0 个答案:

没有答案