javascript - detectar o fim das funções encadeadas?

Hoje estou trabalhando em um projeto de estimação usando chamadas de função encadeadas, e estou curioso para saber como eu posso detectar quando a última função da cadeia é executada. Por exemplo:

func1('initial data').func2().func3().func4();

E depois que o func2-4 terminar de trabalhar nos 'dados iniciais' eu gostaria de detectar quando o func4 está pronto. Como func4 () nem sempre é a última função na cadeia, também pode terminar em .func3 () ou .func5 () por exemplo, ou eu poderia mixar minhas chamadas de função dependendo do que eu estou tentando fazer, Eu estou tentando pensar em uma maneira de detectar não mais chamadas de função estão sendo feitas, mas eu não estou indo muito longe.

questionAnswers(3)

yourAnswerToTheQuestion