Question: I was trying to use the REST API of TeamCity but i can't find a list of all supported requests and the names of parameters. I wanted to look it up in their official documentation (<https://confluence.jetbrains.com/display/TCD10/REST+API>)  

where a link to exactly this list is provided  

(<http://teamcity:8111/app/rest/application.wadl>)  

but i just can't connect to it. Seems like the page is down.

I have googled all kinds of stuff in the hope to find this list somewhere else but i couldn't find anything smart.

Does anyone know where to find such a list or can provide one? That would be fantastic.

Thanks

Answer: 
This in one file works..

Looks like await only is applied to the local function which has to be async..

I also am struggling now with a more complex structure and in between different files. That's why I made this small test code.

edit: i forgot to say that I'm working with node.js.. sry. I don't have a clear question. Just thought it could be helpful with the discussion..

```
    function helper(callback){

    function doA(){

        var array = ["a ","b ","c "];

        var alphabet = "";

        return new Promise(function (resolve, reject) {

            array.forEach(function(key,index){

            alphabet += key;

                if (index == array.length - 1){

                    resolve(alphabet);

                };

            });

        });

    };

    function doB(){

        var a = "well done!";

        return a;

    };

    async function make() {

        var alphabet = await doA();
        var appreciate = doB();

        callback(alphabet+appreciate);

    };

    make();

};

helper(function(message){

    console.log(message);

});

```
Yes, await / async was a great concept, but the implementation is completely broken. 

For whatever reason, the await keyword has been implemented such that it can only be used within an async method. This is in fact a bug, though you will not see it referred to as such anywhere but right here. The fix for this bug would be to implement the await keyword such that it can only be used TO CALL an async function, regardless of whether the calling function is itself synchronous or asynchronous. 

Due to this bug, if you use await to call a real asynchronous function somewhere in your code, then ALL of your functions must be marked as async and ALL of your function calls must use await.

This essentially means that you must add the overhead of promises to all of the functions in your entire application, most of which are not and never will be asynchronous.

If you actually think about it, using await in a function should require the function containing the await keyword TO NOT BE ASYNC - this is because the await keyword is going to pause processing in the function where the await keyword is found. If processing in that function is paused, then it is definitely NOT asynchronous.

So, to the developers of javascript and ECMAScript - please fix the await/async implementation as follows...

* await can only be used to CALL async functions.
* await can appear in any kind of function, synchronous or asynchronous.
* Change the error message from "await is only valid in async function" to "await can only be used to call async functions".