Отличная статья

Вот еще одно простое решение, которое я написал:

var callbackCount = 0;
var callback = getCallback();
fetch(url).then(callback)
//return the callback with the call index binds to it
function getCallback(){
    callbackCount ++;
    var thisObject = {
        callbackIndex : callbackCount
    }
    return function(response){
        if(this.callbackIndex >= callbackCount){
            //Last call made
        }
    }.bind(thisObject)
}