Pra*_*tta 33 typescript typescript1.7
我对c#的async/await非常熟悉并且使用了一年左右的打字稿,有谁可以请一个简单的例子来解释它如何在打字稿上运行?在此先感谢,期待找到一些帮助,并实现相同的
更新
如果示例包含angular/jquery承诺将是非常有用的,因为它将给出实际实现的清晰视图
Dav*_*ret 32
关键是要使用ES6承诺或东西,实现了PromiseLike与PromiseConstructorLike中发现的接口lib.d.ts(阅读更多).这个jQuery的诺言没有实现,所以它不会与工作的这些接口.
这是一个使用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();
Run Code Online (Sandbox Code Playgroud)
需要注意的是包含任何代码await的语句需要有一个内部async功能,所以我在一个包中的代码.也就是说,即将到来的提案增加了"顶级等待".在这里阅读更多.
Zar*_*tag 16
请注意,您需要在Typescript 1.7中定位ES6才能使用async/await.对于较低版本,Visual Studio输出
TS1308 'await' expression is only allowed within an async function.
Run Code Online (Sandbox Code Playgroud)
和
TS1311 Async functions are only available when targeting ECMAScript 6 and higher.
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://blogs.msdn.com/b/typescript/archive/2015/11/03/what-about-async-await.aspx
| 归档时间: |
|
| 查看次数: |
29232 次 |
| 最近记录: |