LoginSignup
3
3

More than 5 years have passed since last update.

Node.js v7.6.0から使えるasync awaitをmochaでやってみた

Posted at
// 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を最新に上げないといけないところですかね。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3