を使用するにはawait、その実行コンテキストがasync自然である必要があります
それが言ったように、あなたは何よりも先にタスクにexecuting context進んで進んでいるあなたの性質を定義する必要がありますawait。
ただ、置くasync前にfn、あなたのここで宣言asyncタスクが実行されます。
var start = async function(a, b) {
// Your async task will execute with await
await foo()
console.log('I will execute after foo get either resolved/rejected')
}
説明:
あなたの質問では、あなたは本質的にあり、並行して実行されるをインポートしてmethodいますasynchronous。しかし、そのasyncメソッドを実行しようとしている場所は、使用execution contextするために定義asyncする必要がある別の内部にありますawait。
var helper = require('./helper.js');
var start = async function(a,b){
....
const result = await helper.myfunction('test','test');
}
exports.start = start;
フードの下で何が起こっているのだろうか
awaitpromise / future / task-returningメソッド/関数asyncを使用し、awaitを使用できるようにメソッド/関数をマークします。
また、に精通しているpromises場合awaitは、実際に同じプロセスで約束/解決を行っています。promiseのチェーンを作成し、resolveコールバックで次のタスクを実行します。
詳細については、MDN DOCSを参照してください。
await内でのみ使用できることasyncです。つまりawait、関数を非同期にするため、そのように宣言する必要があります。