下記コードにてABCの順に関数を実行しており、Cにのみajaxの繰り返し処理が含まれています。
Cのajax処理終了後に最後の仕切り線 console.log("---"); が実行される想定ですが、
仕切り線が実行されてからajaxのログが流れます。

console.log("---");
funcA();
funcB();
funcC();
console.log("---");

function funcC(){
    const links = ["http://aaa/1","http://aaa/2",・・・]
    for(let i in links){
        runAjax(links[i]);
    }
}

function runAjax(url_){
    $.ajax({
        type:'GET',
        url: url_,
        timeout: 1000,
        datatype: 'html'
    }).then(data =>{
        console.log(success);
    }, _ =>{
        console.log(error);
    });
}

調べるとdeferredやpromiseなどがありましたが使い方がよく分からず、自分のコード内でどう当てはめれば良いのか分からなかったので、質問させていただきました。

(ajax繰り返し時のログの順番もバラバラなのでできれば正しい実行順に直したいです)

ご回答のほど、よろしくお願い致します。

jQuery 3.3.1