¿Hay alguna forma posible de utilizar la espera incorporada sin async en Node.js 7.6+?

Soy progtwigdor de Node.js. Antes de que se publicara Node.js 7.6, usé el módulo ‘ asyncawait ‘ para dejar que mi código estuviera en el estilo async-await. El estilo de encoding es como a continuación:

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){ } 

Después de que se haya publicado Node.js 7.6, la función async-await está oficialmente incorporada. Pero las funciones asíncronas y de espera (¿o llamarlas palabras clave?) Aparentemente tienen que estar emparejadas en una función. Si cambio mi código a,

 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){ } 

La palabra clave ‘await’ en la función ‘f’ no se puede reconocer. A menos que cambie el código a,

 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){ } 

El código será tedioso. ¿Hay alguna forma posible de utilizar la espera incorporada sin async en una función?

Await solo puede usarse dentro de funciones asíncronas.

La expresión de espera hace que la ejecución de la función asíncrona se detenga, espere la resolución de la Promesa y reanude la ejecución de la función asíncrona cuando se resuelva el valor. A continuación, devuelve el valor resuelto. Si el valor no es una promesa, se convierte en una promesa resuelta.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await