我对c#的async / await非常熟悉并且使用打字稿一年左右,有人可以举一个简单的例子来解释它如何在打字稿上运行吗? 在此先感谢,期待找到一些帮助并实施相同的
更新
如果示例包含angular / jquery承诺,那将非常有用,因为它将清楚地显示实际实现
答案 0 :(得分:32)
关键是使用ES6 Promise或实现lib.d.ts(Read more)中PromiseLike
和PromiseConstructorLike
接口的内容。一个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。