如何从较低的嵌套函数获取数据到较高的嵌套函数?

时间:2018-03-18 23:02:49

标签: javascript nested es6-promise

我有一个问题是从较低的嵌套函数获取数据到较高的嵌套函数,让我们假设所需的数据是异步的我尝试回调无效,承诺也没有给我正确的结果 - 我做错了什么?我是node.js环境中的新手。

代码:

findShortestRoute('A', 'C', 0, 0)

fiddle

知道如何解决这个问题吗?

1 个答案:

答案 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;
&#13;
&#13;