私はNode.jsプログラマーです。 Node.js 7.6がリリースされる前に、モジュール 'asyncawait'を使用して、自分のコードを非同期待ちスタイルにしました。Node.js 7.6+で非同期なしでビルトイン待機を使用する方法はありますか?
のNode.js 7.6がリリースされた後、非同期待つ機能が正式にされvar async = require('asyncawait/async');
var await = require('asyncawait/await');
var getData = async(function(finder){
return await(db.collection.findOne(finder));
});
var f = function(finder){
return await(getData(finder));
};
try{
let result = f({id: 1});
}catch(err){
}
ビルトイン:コーディングスタイルは、以下のようなものです。しかし、非同期関数と待機関数(またはそれらをキーワードと呼んでいますか?)は、一見関数内でペアにする必要があります。コードを変更すると、
var getData = async function(finder){
return await db.collection.findOne(finder);
}
var f = function(finder){
return await getData(finder);
};
try{
let result = f({id: 1});
}catch(err){
}
'f'関数の 'await'キーワードが認識されません。コードを変更しない限り、
var getData = async function(finder){
return await db.collection.findOne(finder);
}
var f = async function(finder){
return await getData(finder);
};
try{
let result = await f({id: 1});
}catch(err){
}
コードが面倒です。関数内で非同期なしでビルトイン待機を使用する方法はありますか?
約束があるため厥。本質的にコールバックと非同期を約束するように待っているので、同期コードと非同期コードを簡単に切り替えることができます。 – GottZ