非同期/コンパイル中にスローエラーが発生するのを待ちます。 Imは現在、プリセット付きのバベルを使用しています - es2015、&プラグイン - transform-async-to-generator。async/es2015でスローエラーが発生する
async function verifyUserAlreadyExists(phone, email) {
try {
db.collection("users").find({
$or:{"contact_details.phone": phone, "contact_details.email": email}
}, (err, cursor)=>{
await cursor.count() >= 1;
});
}catch(err) {
console.log("Verify User Exists:"+JSON.stringify(err));
}
}
export default {
getAllUsers: (request, reply) => {
db.collection("users").find({}).toArray((err, users) => {
reply(users);
});
},
insertNewUser: (request,reply) => {
let userAlreadyExists = await verifyUserAlreadyExists("7259769413");
console.log(userAlreadyExists);
}
}
'async'関数の中で' await'します。 –
それはコールバックなので、非同期にするにはどうすればいいですか? – manju4ever
構文エラーを修正するのは簡単です( 'async(err、cursor)=> {...}')。問題はa) '.find()'が約束を返し、b) '.find()'が非同期コールバックを処理できるかどうかです。ですから '.find'メソッドはどのくらい正確に動作しますか? 'await'をどこかに挿入するだけで、' async'関数を使うことはできません。 'async'関数を呼び出すはずのコードは、非同期関数を処理できる必要があります。そこに「待って」いる必要がありますか? 'cursor.count()'は何を返しますか? –