Async / Await,简单的例子(打字稿)

时间:2015-09-04 15:33:56

标签: typescript typescript1.7

我对c#的async / await非常熟悉并且使用打字稿一年左右,有人可以举一个简单的例子来解释它如何在打字稿上运行吗?    在此先感谢,期待找到一些帮助并实施相同的


更新
如果示例包含angular / jquery承诺,那将非常有用,因为它将清楚地显示实际实现

1 个答案:

答案 0 :(得分:32)

关键是使用ES6 Promise或实现lib.d.tsRead more)中PromiseLikePromiseConstructorLike接口的内容。一个jQuery承诺does not implement这些接口,所以它不会使用它。

这是一个使用ES6承诺的简单示例:

function getStringFromWebServerAsync(url: string) {
    return new Promise<string>((resolve, reject) => {
        // note: could be written `$.get(url).done(resolve).fail(reject);`,
        //       but I expanded it out for clarity
        $.get(url).done((data) => {
            resolve(data);
        }).fail((err) => {
            reject(err);
        });
    });
}

async function asyncExample() { 
    try {
        const data = await getStringFromWebServerAsync("http://localhost/GetAString");
        console.log(data);
    }
    catch (err) {
        console.log(err);
    }
}

asyncExample();

请注意,包含await语句的任何代码都需要在async函数内,因此我将代码包装在一个中。也就是说,即将到来的提案会增加&#34;顶级等待&#34;。阅读更多here