jQuery Deferred: $.wenn() mit mehreren Objekten

Brauche ich eine Methode zum abrufen von verschiedenen Skripte, die mit einem Rückruf.
Diese Methode funktioniert ok:

fetchScripts:function() {
    var _this=this;
    $.when(
        $.ajax({
            url:_this.url + 'library/script-one.js',
            type:'get',
            cache:true
        }),
        $.ajax({
            url:_this.url + 'library/script-two.js',
            type:'get',
            cache:true
        }),
        { .... },
        $.ajax({
            url:_this.url + 'library/script-n.js',
            type:'get',
            cache:true
        })
    ).then(function() {
        console.log('fetch is done');

    })
},

Aber ich würde gerne mehr verallgemeinern die Methode, weil redundany steigt.
Ist es möglich, einen pass Versprechen auf $.wenn()?
Unten mein Erster Versuch - aber die url ist immer die gleiche, D. H. 'script-n.js'
Vielleicht habe ich den Punkt verpasst und man konnte veranschaulichen eine weitere "Schönheit" Lösung

fetchScripts:function() {
    this.deferred=new $.Deferred();
    this.promise=this.deferred.promise();
    var _this=this;
    $.each([
        'script-one.js',
        'script-two.js',
        ( .... ),
        'script-n.js'
    ],function() {
        _this.script=this;
        _this.promise.then(function(){
            return $.ajax({
                url:_this.url + 'library/' + _this.script,
                type:'get',
                cache:true
            })
        });
    });
    $.when(
        this.promise
    ).then(function() {
        console.log('fetch is done');

    });
    this.deferred.resolve();
},
InformationsquelleAutor campari | 2013-07-11
Schreibe einen Kommentar