我对如何正确使用该async
模块感到有些困惑。说我有:
result = long_sync_io_function();
short_sync_function(result);
... //other stuff dependent on result
通常,在 Node 中,您转换long_sync_io_function()
为其异步对应物long_async_io_function(callback(err, result))
并执行以下操作:
long_async_io_function(function(err, result) {
if (!err) {
short_sync_function(result);
...//other stuff dependent on result
}
});
但是回调的不断嵌入很快就意味着大量的缩进。是正确的使用方法async
:
//1
async.waterfall([
function(callback) {
result = long_sync_io_function();
callback(null, result);
},
function(result, callback) {
short_sync_function(result);
//other stuff dependent on result
}
]);
或者
//2
async.waterfall([
function(callback) {
long_async_io_function(callback);
},
function(result, callback) {
short_sync_function(result);
...//other stuff dependent on result
}
]);
这些是等价的吗?我不知道是否aysnc
有助于像 1 中那样创建异步代码,或者只是像 2 中那样有助于构建现有的异步代码。