Цепные обещания без использования «тогда»

У меня есть объект (foo) который предоставляет несколько методов в качестве обещаний (с использованием JQuery deferred). То, как я это сделал, закончилось таким кодом:

var foo = createNewFoo();
$.when(foo.method1(arg))
    .then(foo.method2)
    .then(foo.method3);

Я хочу реорганизовать мой код в нечто более приятное, например так:

var foo = createNewFoo()
    .method1(arg)
    .method2()
    .method3();

Но я не уверен, как реализоватьfoo так было бы возможно.

Ответы на вопрос(4)

Ваш ответ на вопрос