私はc#のasync/awaitに非常に精通しており、TypeScriptを1年ほど使用していますが、タイプスクリプトでどのように機能するかを説明する簡単な例を教えていただけますか?事前に感謝し、いくつかの助けを見つけて同じものを実装することを楽しみにしています
[〜#〜] update [〜#〜]
例にangle/jquery promiseが含まれている場合、実用的な実装の明確なビューが得られるため、非常に役立ちます。
重要なのは、 (ES6 Promise または libにあるPromiseLike
およびPromiseConstructorLike
インターフェイスを実装するものを使用することです。 .d.ts ( 続きを読む )。 jQueryの約束 実装しない これらのインターフェースは、それでは動作しません。
ES6 promiseを使用した簡単な例を次に示します。
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
関数内にある必要があるため、コードを1つにラップしていることに注意してください。ただし、今後の提案では「トップレベルの待機」が追加されます。続きを読む こちら 。
Async/awaitを使用するには、TypeScript 1.7でES6をターゲットにする必要があることに注意してください。下位バージョンでは、Visual Studioが出力します
TS1308 'await' expression is only allowed within an async function.
そして
TS1311 Async functions are only available when targeting ECMAScript 6 and higher.
詳細については、例えば http://blogs.msdn.com/b/TypeScript/archive/2015/11/03/what-about-async-await.aspx