我有一个问题是从较低的嵌套函数获取数据到较高的嵌套函数,让我们假设所需的数据是异步的我尝试回调无效,承诺也没有给我正确的结果 - 我做错了什么?我是node.js环境中的新手。
代码:
findShortestRoute('A', 'C', 0, 0)
知道如何解决这个问题吗?
答案 0 :(得分:0)
说实话,我不知道你想要完成的完全。 JSFiddle有很多错误,我很难计算出意图。
然而,有一种方法可以通过在循环外部移动这些函数并使用Promise.all
功能来简化这一过程,就像这样。它可能并不完全是你所期待的,但我希望它能为你提供一些东西:
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var array_length = array.length;
var promises = [];
console.clear();
function tfunc1() {
promises.push(tfunc2());
}
function afunc1() {
promises.push(afunc2());
}
function tfunc2() {
return new Promise((resolve, reject) => {
setTimeout(time => resolve('Tsomedata'), 2000);
});
}
function afunc2() {
return new Promise((resolve, reject) => {
setTimeout(time => resolve('Asomedata'), 1000);
});
}
for (var i = 0; i < array_length; i++) {
switch (array[i]) {
case 3:
tfunc1();
break;
case 6:
afunc1();
break;
default:
break;
}
}
Promise.all(promises).then(data => {
//both Tsomedata and Asomedata are available in the `data` array.
console.log(data);
});
&#13;