我的getPlanNames
方法在完成获取所有getSortPlanIDs
之前调用sortPlanNames
。除了使用超时以外,还有其他更雄辩的方法来处理此问题吗?
到目前为止,我已经尝试使用超时,这使我得到了我想要的东西。似乎并不是解决此问题的最佳方法。
var sorterNames = [];
var filteredSortPlanNames = [];
module.exports = {
getSorterNames: async function (config) {
var sorterInfo = await (promise = getSorters.getsorters(config));
sorterInfo.forEach(element => {
sorterNames.push(element.locationAlias);
});
this.getPlanNames(config);
},
getPlanNames: async function (config) {
sorterNames.forEach(async (sorterName) => {
var sortPlanNames = await (promise = getSortPlanNames.getPlanNames(config, sorterName));
sortPlanNames.forEach(element => {
var str = element.toString();
if (str.indexOf('_sortplan1') != -1 && str.indexOf('1', str.length - 1) != -1) {
filteredSortPlanNames.push(element);
}
});
})
this.getSortPlanIDs();
},
getSortPlanIDs: async function (config) {
console.log(filteredSortPlanNames);
},
loadSortPlans: async function (config) {
}
};
我希望getPlanName
函数内的异步调用在调用getSortPlanIDs
之前完成