我正在使用节点js,用于我的应用程序。例如,代码如下:
userProvider.uploadImage(formData.imageSmall, 'full', function(err) {
if (err) throw err;
userProvider.uploadImage(formData.image, 'small', function (err) {
if (err) callback(err);
res.send("images loaded");
});
});
与以下内容相同:
async.series([
function(callback) {
userProvider.uploadImage(formData.image, 'full', function (err) {
if (err) callback(err);
callback();
});
},
function(callback) {
userProvider.uploadImage(formData.imageSmall, 'small', function(err){
if (err) callback(err);
callback();
});
}
],
function(err) {
if (err) throw err;
res.send("images loaded");
}
);
这两个版本的代码是否做同样的事情?我可以将第二个版本视为非阻塞吗?
答案 0 :(得分:1)
是的,他们的工作应该相同。是的,它是非阻塞的。如果在两个当前代码块下面添加一个console.log,它将在uploadImage竞争之前执行。 Async.series只是一种避免过度混淆回调的方法。