Consider:

```js
function makeAjaxTask(arg) {
    function ajaxTask() {
        return Q($.ajax(arg));
    }
}

return [makeAjaxTask(arg1), makeAjaxTask(arg2), makeAjaxTask(arg3)]
.reduce(function (results, task) {
    return results.then(function (results) {
        return task().then(function (result) {
            results.push(result);
            return results;
        }, function (error) {
            return results;
        });
    });
}, Q([]))
```

Which returns a promise for the results of each task.