In other words, you have to redesign your shortenURL function, like this:

function shortenURL( url, callback ) {
    var apiKey = 'APIKEY';
    var apiLogin = 'LOGIN';
    $.getJSON(
        "http://api.bit.ly/shorten?version=2.0.1&longUrl=";
        + url + "&login=" + apiLogin + "&apiKey=" + apiKey,
        function( data ) {
            callback( data.results[url].shortUrl );
        }
    );
}

and call it like this:

shortenURL( 'http://www.example.com/', function( url ) {
    alert( 'Short URL is: ' + url );
});

-Mike

On Sat, Sep 19, 2009 at 10:00 AM, MorningZ <morni...@gmail.com> wrote:

>
> On Sep 19, 11:34 am, Bill H <dysfunct...@gmail.com> wrote:
> > I've tried that and still can't seem to get the data into any sort of
> > usable scope.
>
> The problem is that while you may be understanding scope, you are not
> understanding asynchronous calls.... the $.getJSON call doesn't
> "return" anything
>
> Whatever you are wanting to do with "shortURL" needs to be done
> inside, or at least kicked off from inside, the getJSON's success event
>

Reply via email to