【发布时间】:2020-03-31 16:46:19
【问题描述】:
多年来,我创建了一个我在项目中使用的标准方法库。他们中的许多人都有回调。我最近了解了 Promise 和 async/await 以使代码读取同步并喜欢它而不是早期的回调。
对于正在进行的和未来的项目,我想对库中的旧方法使用 async/await。是否可以简单地在它们前面添加“异步”,然后当我调用它们时添加“等待”以使它们承诺友好。然而同时我的旧项目可以使用它们并将它们称为回调?
例如:
var checkIfFileExists = function(filename,callback){
fs.stat(filename, function(err, stat) {
if(err == null) {
let jsonObj = { 'status' : true,
'error' : false
};
} else if(err.code == 'ENOENT') {
console.log( 'File ' + filename + ' does not exists');
let jsonObj = { 'status' : false,
'error' : err
};
} else {
let jsonObj = { 'status' : false,
'error' : err
};
}
callback(jsonObj);
});
};
对于这种方法,我可以像这样简单地添加“异步”吗:
var checkIfFileExists = async function(filename,callback){ .... }
然后我的旧项目将其称为回调:
checkIfFileExists(fileToCheck, function(jsonResponse){
// do something with response
});
新项目称之为:
let jsonResponse = await checkIfFileExists(fileToCheck);
【问题讨论】:
标签: node.js promise async-await