ノード7.4ではasync/awaitがサポートされていると思いましたが、この例は機能しません。
const Promise = require('bluebird');
async function main(){
await Promise.delay(1000)
}
main();
結果:
async function main(){
^^^^^^^^
SyntaxError: Unexpected token function
ノード7.4でasync/awaitを使用するにはどうすればよいですか?
はい、async-awaitはNode.js v7でサポートされていますが、harmony
フラグの背後でロックされています。まだ生産準備が整っていない機能は、このフラグの背後にあります。
Node.js v7でasync-awaitを使用するには、このフラグを指定してNode service-
node --harmony-async-await app.js
Async-awaitの公式リリースは、4月にリリースされるNode.js v8に予定されています。
this pull requestに従ってステータスを確認できます。基本的に、async-awaitの正しい機能は、V8エンジンv5.5をNode.jsに統合することに依存しています。現在、Node.jsはこのプルリクエストによって解決されるV8 v5.4を使用しています。
Update 1-V8 v5.5がNode.js v7に来ているようです。詳細については、 this pull requestに従ってください。
Update 2-良いニュースだ! Node.jsバージョン7.6.0は、V8エンジン5.5が正常に移植されたため、--harmony
フラグを使用せずにasync
関数を公式にサポートするようになりました。
Node.jsのバージョンが7.0〜7.5.0(両端を含む)の場合にのみ、--harmony
フラグを使用する必要があります。完全な変更ログについては、 here を参照してください。
Node.js 7.6.0は数時間前にリリースされ、v8 5.5が含まれていました。これで、フラグなしでasync/awaitを使用できます。
これを機能させるには、調和フラグが必要になります。
node --harmony-async-await myscript.js
でもう一度お試しください
Nodeバージョン7.6は、すぐにasync/awaitをサポートするようになりました。まだ試していない場合は、すぐに採用し、後戻りしないでください。
const makeRequest = () =>
getJSON()
.then(data => {
console.log(data)
return "done"
})
makeRequest()
そして、async/awaitを使用します。
const makeRequest = async () => {
console.log(await getJSON())
return "done"
}
makeRequest()
私は同じ問題を抱えていました、私がしたことは以下のコマンドを使用してasyncawaitをインストールしました
_npm install asyncawait
_
その後、以下のコマンドを使用してawaitとasyncを宣言しました
_const async = require('asyncawait/async');
const await = require('asyncawait/await');
_
その後、必要な場所でこれらを使用しましたが、私のコマンドはasync(my-code) & await(my-code)
内にありました。
そして、それは私にとって完璧に機能しました。