I am making an node js application and i have problem that eventhough i use await+async it will not do the thing. I need to call the first function and then the second one, but the second one is always called before the first one here is the code
index.js
router.get('/', async function(req, res) {
    if(req.isAuthenticated()) {
        await UserManagementToolObject.saveCharacterWithUser(req.user);
        var something = await UserManagementToolObject.test2();
        console.log(something);
        res.end();
    } else {
        res.send('<h1>Express OAuth Test</h1>' + '<a href="/auth/bnet">Login with Bnet</a>');
    }
});
UserManagementTool.js
async test2() {
        var cc = "ee";
        return cc;
    }
    async saveCharacterWithUser(user) {
        var that = this;
        var url = "https://eu.api.battle.net/wow/user/characters?access_token="+user.token;
        await request({
            url: url,
            json: true
        }, async function (error, response, body) {
            if (!error && response.statusCode === 200) {
                await that.deleteCharactersForUpdate(user.battletag);
                var Characters = [];
                for (var i = 0; i < body["characters"].length; i++) {
                    var RequestedCharacter = body["characters"][i];
                    Characters.push(await that.saveUserCharacters(RequestedCharacter,user.battletag));
                }
                var User = new UserModel({
                    _id: new mongoose.Types.ObjectId(),
                    id: user.id,
                    battletag: user.battletag,
                    provider: user.provider,
                    characters: Characters
                });
                await that.saveUser(User,Characters);
            }
        });
    }
