実現したいこと

APIからのレスポンスとしてnumberが返ってきますがその値が0になるまで
Alamofireで同じAPIに対してリクエストを投げ続けたいのですが、
どのようにコーディングすれば良いのか思いつきません。

通信結果を投げた順番で結果を受け取るようにしたい場合、
どのように記述することで処理を実装できますか?

while文で囲った場合はレスポンスの速さ次第によっては、
受け取る順番がバラバラ担ってしまうと思うのですが、どうでしょうか。


対象のコード

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    /*ここの処理をループさせたいのです。*/
    getMessageList(apiResponse: { response in
        ※省略
    })
    /*--------------------------------*/
}

func getMessageList(apiResponse: (responseData: Int) -> ()) {

    Alamofire.request(.GET, "(APIのURL)", headers: customHeader)
        .responseJSON { response in
            guard let object = response.result.value else {
                return
            }
            let json = JSON(object)
            let number: Int = json["result"]["number"].int!
            apiResponse(responseData: number)
    }

}

teratailにも投稿させていただいています。
至急と言うほどでは無いですが、早めに解答をいただけるとありがたいです。

よろしくお願いします。