// sample functions
function resolveAfter2Seconds(x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function add2(x) {
var a = await resolveAfter2Seconds(20);
var b = await resolveAfter2Seconds(30);
return x + a + b;
}
// mocha code
describe('hoge', () => {
it('fuga', async () => {
const v = await add2(10);
require('assert')(v === 60);
});
});
async awaitのサンプル関数は、いつもお世話になっているmozillaさんのサイトから引用させていただきました。(コピペすれば動くように書いてあります。)
ポイント的には、
・itでasyncファンクション使っている
・add2のasyncファンクションの返り値がnew Promiseしてないのに自動でPromiseオブジェクトになっている
ことですかね。
やってて気になったのは既存コードがPromise仕様じゃないと使いづらいのと、Node.jsのversionを最新に上げないといけないところですかね。