2015-09-04 52 views
24

私はasync/cwaの待ち受けに1年ほど使っていますが、誰でも簡単な例を書いてください。事前に おかげで、それは実用的な実装のクリアな視界を与えるよう例では、角度/ jqueryの約束が含まれている場合、それは非常に参考になるいくつかの助けを見つけると同じAsync/Await、簡単な例(typescript)


UPDATE
を実装するために楽しみにして

+0

TypeScriptの非同期関数https://github.com/Microsoft/TypeScript/issues/1664を参照してください。また、https://smellegantcode.wordpress.com/2015/02/01/typescript-1-5-async-functions/およびhttp://www.dotnetcurry.com/javascript/1131/ecmascript6-async-using-generators-約束 –

+2

ロードマップではasync/await 2.0と表示されます:https://github.com/Microsoft/TypeScript/wiki/Roadmap([7月23日](https://github.com/Microsoft/TypeScript/wiki/Roadmap/)時点) aa5e66fabe0d50ef53e6b05b3d1906a3eb40a35b)) –

+0

MatijaGrcicと@JonSkeet skeet、コメントをいただきありがとうございます。私はすでにこれらのドキュメントを見ていましたが、実際にいくつかの簡単な実用的な例を楽しみにしていましたので、anglejs promiseの –

答えて

28

キーはES6 Promiseまたはlib.d.tsRead more)に見出さPromiseLikePromiseConstructorLikeインターフェースを実装するものを使用することです。 jQueryはこれらのインターフェイスをdoes not implementと約束しているので、それはうまく動作しません。 await文を含む任意のコードがasync関数内にする必要があるので、私は1つのコードをラップしていることを

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(); 

注:

はここES6の約束を使った簡単な例を示します。

12

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

+6

これは良い情報ですが、あなたが十分な評判を持っていれば、コメントになるはずです。 –

+1

私はそれをかなり認識していますが、あなたが言うように私は評判が足りません。そのために残念。 – Zartag