web-dev-qa-db-ja.com

async / awaitを使用して関数に引数を渡す

Async/awaitを使用する関数に引数を渡そうとしています。私は自分の関数をそのように定義しました

// common.js

export const myAsyncFunc = async (t, textA, textB) => {
  await t
    .typeText('#input-1', textA)
    .typeText('#input-2', textB);
};

ただし、この関数を別のファイルにインポートしようとすると、t is not definedのため、tを渡すことができません。

// index.js

import { myAsyncFunc } from './common'

myAsyncFunc(t, textA, textB)

textAtextBの引数を(おそらくカリー化または別の方法で)async/awaitで渡すことは可能ですか?

EDIT:つまり、これはテストカフェライブラリの一部として実行されています。 tは、testcafe chrome client/__tests__/ファイルにインポートされるのではなく、common.jsが実行されたときに発生するようです。

7
hidace

myAsyncFuncをインポート/エクスポートしていますが、コードではmyAsyncFunctionを呼び出しています。

また、あなたは連鎖しています

.typeText('#input-1', textA)
.typeText('#input-2', textB);

しかし、私は思います .typeText約束を返しますよね?だからあなたはすべきです:

export const myAsyncFunc = async (t, textA, textB) => {
  await t.typeText('#input-1', textA);
  await t.typeText('#input-2', textB);
};

それ以外は、コメントで指摘されているように、コードは正常に機能していますtをどこかで定義したと仮定

2
tiagodws