Node.js 当与async/await一起使用时,如何从承诺中获得价值?

Node.js 当与async/await一起使用时,如何从承诺中获得价值?,node.js,promise,async-await,Node.js,Promise,Async Await,我正在尝试使用async/await运行并行异步函数调用,但不确定如何从异步调用中恢复返回的对象 async function doit(){ const meta = call1; // async call 1 const data = call2; // async call 2 await meta; await data; console.log(meta); 输出是 Promise { Returned value } 那么如何从异步调用中获取返回值呢

我正在尝试使用async/await运行并行异步函数调用,但不确定如何从异步调用中恢复返回的对象

async function doit(){
  const meta = call1;   // async call 1
  const data = call2;   // async call 2
  await meta;
  await data;
  console.log(meta);
输出是

Promise { Returned value }
那么如何从异步调用中获取返回值呢


编辑:我正在尝试来自的示例。检查“小心!避免使用过多的顺序部分”。

函数需要返回一个
承诺

'use strict';

async function doit() {

  let [meta,data] = await Promise.all([call1(),call2()]);

  console.log(meta);
}

函数需要返回一个
承诺

'use strict';

async function doit() {

  let [meta,data] = await Promise.all([call1(),call2()]);

  console.log(meta);
}

如果您需要返回值,我将使用如下内容:

async function doit(){
  // create all async requests
  const metaReq = call1();   // async call 1
  const dataReq = call2();   // async call 2

  // wait for them
  const [meta, data] = await Promise.all( [ metaReq, dataReq ] );

  // use them
  console.log(meta);
}

如果您需要返回值,我将使用如下内容:

async function doit(){
  // create all async requests
  const metaReq = call1();   // async call 1
  const dataReq = call2();   // async call 2

  // wait for them
  const [meta, data] = await Promise.all( [ metaReq, dataReq ] );

  // use them
  console.log(meta);
}

这将创建一个顺序流。我正在尝试一个类似于这里描述的平行流。检查“小心!避免走得太顺”部分。有什么想法吗?@James您正在包装call1()和call2()的返回值吗?你能发布这个函数吗?这将创建一个顺序流。我正在尝试一个类似于这里描述的平行流。检查“小心!避免走得太顺”部分。有什么想法吗?@James您正在包装call1()和call2()的返回值吗?你能把这个功能贴出来吗?