0
我是一个Node.js程序员。在Node.js 7.6发布之前,我使用模块'asyncawait'让我的代码处于异步等待样式。编码风格如下:有没有任何可能的方式来使用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){
}
在Node.js 7.6发布后,async-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){
}
'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){
}
代码将是单调乏味的。有没有任何可能的方式来使用内置的等待,而不是在一个函数中的异步?
那是什么承诺是。基本上等待回调和异步到承诺,所以你可以轻松地切换syncronous和asyncronous代码。 – GottZ