从函数中获取收益,然后在promise.all()中使用?

阿方斯

我有三个函数,每个函数执行一个SQL查询并返回一个数据数组。我知道这部分是有效的,因为我可以在返回数组之前做一个json.stringify,它可以按预期工作。问题是我需要等到这三个功能完成后再对它们进行更多处理。

我使用的每个函数都具有相同的调用结构:

this.foo.makeFullJSON().then((fooStorage) => {
    fooJSON = '{foo:[' + JSON.stringify(fooStorage) + ']}';
});

我知道我应该有一个promise数组,然后将promise推给它,然后使用Promise.all(),但是我真的不知道我实际上必须在代码的哪一部分上执行此操作。

编辑:清除后,我调用的每个makeFullJSON()都会返回一个promise(数组)。我需要对结果数组进行处理。

KevBot

在创建承诺时将其分配给变量,然后可以将该变量传递给promise.all()

由于我看不到您的代码的完整实现,因此这里是一个工作的精简版,它使用promise进行了工作,并使用了一些相似的名称进行了模拟。

function makeFullJSON(time) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, time, [time]); // send back an array for simulation
  })
}

var p1 = makeFullJSON(1000);
var p2 = makeFullJSON(500);
var p3 = makeFullJSON(750);

p1.then(array => {
  console.log('Promise 1 complete', array);
  // Do other stuff with the return value
});

p2.then(array => {
  console.log('Promise 2 complete', array);
});

p3.then(array => {
  console.log('Promise 3 complete', array);
});

Promise
  .all([p1, p2, p3])
  .then(arrayOfAllResolvedValues => {
    // This array will contain values; the values from the
    // resolved promises in order of adding them to the promises array
    console.log('Array of resolved values:', arrayOfAllResolvedValues);
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Promise.all()中使用配置对象

获取在python中的函数中使用/调用的函数的列表

如何在Typescript中使用Promise.all()

如何在不带.then函数的情况下使用node.js从promise中获取值

如何在Promise.all()中使用if表达式?

在Bluebird Promise库中使用Promises调用另一个函数中的函数

在节点中使用psql(pg-promise)在for loops / promise.all内部承诺

在R中的函数中使用dplyr,然后在for循环中执行该函数

如何在Promise.all()中使用async-await?

如何在C ++中使用Future和Promise从函数线程中获取返回值

promise.all在firebase中使用getDownloadURL()

如何在Promise.all而不是map中使用reduce

在事务/任务中使用Promise.all与在pg-promise中使用t.batch

如何使用try / catch在Async / Await函数中使用Promise.all

然后在构造函数中使用此设置

在R中使用mutate,case_when,any()和all()函数使用Group by

在返回新Promise的函数中使用Promise

在UNION ALL结果集中使用聚合函数

最大函数与在Oracle中使用all_sequences

如何获取GET请求中的函数中使用的变量的值?

如何导出 Promise.all (somefunction) 中的 node.js 模块。然后(函数(){})

在同步函数中使用 promise

获取元素 id,然后在 getElmentByID 中使用它以在单击时触发函数

在反应中使用 Promise.all 出现错误

为什么在 Promise.all 中使用 fetch 时会得到 Promise { <pending> }?

在 Javascript 中使用 promise.all 时,如何从 promise 数组中获取数据

在nodejs中使用promise导出函数

如何在 Assert.All 函数中使用多个断言

在 node.js 中使用 for 循环的 Promise.all