I'm very new to async languages like nodejs, I'm trying to write a web scraper that will visit a link, download a code, extract with regex, **THEN** visit another link using that code. I'm aware I could use callbacks, but I expect to have to go 8-9 levels deep, I think promises is the way to go (is there a better way?)

```
var promise = require("promise");
var request = require("request");

login();

function get_login_code()
{
    request.get("someurl.com", function (error, response, body)
    {
        // just for example
        body = 'TOKEN" value="hello world"';
        var login_code = body.match(/.TOKEN" value="([^"]+)../i);
        return login_code
    });
}

function login()
{
    var login_promise = promise.resolve(get_login_code());
    console.log(login_promise);

}

```

I've tried a bunch of combinations of messing around with promises, but I either always get undefined or a promise which doesn't have a value. I don't want to nest promise functions inside promises because that's exactly the same thing as callback hell. Can someone tell me what I'm doing wrong, I really want this code to be procedural and not 8 callbacks. In the ideal world `promise.resolve` just waits until `get_login_code()` returns the actual code, not undefined.

Output:

```
Promise { _45: 0, _81: 1, _65: undefined, _54: null }

```

Desired Output:

```
hello world

```