typescript - try - Async/Await, ejemplo simple(mecanografía)
promesas javascript (2)
La clave es usar una Promesa ES6 o algo que implemente las interfaces PromiseLike
y PromiseConstructorLike
que se encuentran en lib.d.ts ( github.com/Microsoft/TypeScript/issues/1664 ). Una promesa de jQuery no implementa estas interfaces por lo que no funcionará con eso.
Aquí hay un ejemplo simple usando una promesa de 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 {
let data = await getStringFromWebServerAsync("http://localhost/GetAString");
console.log(data);
}
catch (err) {
console.log(err);
}
}
asyncExample();
Tenga en cuenta que cualquier código que contenga una instrucción de await
debe estar dentro de una función async
, por lo que he incluido el código en uno.
Estoy bastante familiarizado con el async / await de c # y he estado usando mecanografiado durante un año o así, ¿alguien puede dar un ejemplo sencillo que explique cómo funciona en mecanografiado? Gracias de antemano, esperamos encontrar ayuda e implementar el mismo
ACTUALIZAR
sería muy útil si el ejemplo incluye una promesa angular / jquery, ya que dará una visión clara de la implementación práctica
Tenga en cuenta que debe apuntar ES6 en Typescript 1.7 para usar async / await. Con versiones inferiores, las salidas de Visual Studio.
TS1308 ''await'' expression is only allowed within an async function.
y
TS1311 Async functions are only available when targeting ECMAScript 6 and higher.
Para obtener más información, consulte, por ejemplo, http://blogs.msdn.com/b/typescript/archive/2015/11/03/what-about-async-await.aspx