NodeJs:如何将异步值导出到另一个文件?

时间:2018-05-23 06:03:37

标签: javascript node.js

我试图从另一个文件中的一个文件(比如index.js)访问异步函数的结果。

test.js

const preMovie = async () => {
    const promiseTickets = new Promise((resolve, reject) => {
        console.log("abcde");
        resolve('ticket is here')
    });

    let ticket = await promiseTickets;
    return ticket;
}

preMovie().then((m) => console.log(m));

index.js

//access the value of ticket here

我的目标是仅在完成任务时将 故障单 中的值导出。我不想导出 undefined 值。我尝试过不同的解决方案,但要么让我理解太复杂,要么不能与我想要的东西融为一体。

1 个答案:

答案 0 :(得分:1)

您可以导出一个解析为ticket值的Promise:

// test.js
const preMovie = async () => {
  const promiseTickets = new Promise((resolve, reject) => {
    console.log("abcde");
    resolve('ticket is here')
  });
  let ticket = await promiseTickets;
  return ticket;
}
const moviePromise = preMovie();
//export default moviePromise;



// main.js

//import moviePromise from './test.js';

moviePromise
  .then(ticket => console.log(ticket));

当然,在实际代码中使用importexport语句时取消注释。另一个选择是导出函数本身,调用它并在其上调用.then,如果有可能需要多次调用该函数,或者控制其时序很重要。