如何从Node中的空函数返回值

unguejic  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(126)

我有以下代码:

function done(err, file) {

  //handle code

  return "test";
}

function process() {

    retext()
     .use(keywords)
     .process(sentence, done);
  

    return val; 
}

字符串
process()函数必须返回retext()的值,但retext()函数似乎没有返回任何东西。
如果我把它改成:

const val = retext()
     .use(keywords)
     .process(sentence, done);


还是不行
我怎么才能让retext()返回一些东西,它只是我安装的一个NPM包
我尝试在done()函数中返回test,但这并没有传递任何东西来返回retext()
我也试过:

retext()
      .use(keywords)
      .process(params.t, done).then((val) => return val);

总结

process()必须返回retext()调用的done()的值

6uxekuva

6uxekuva1#

  • 更新:看起来我完全错过了这个问题的上下文。但是为了子孙后代,OP @ewfewfjio在注解中找到了一个使用全局变量的解决方案。

我不熟悉retext包。但是从这里提供的文档来看,retext函数看起来像是异步的。因此,您需要将结果await。您还需要将process转换为一个可重复的/工作的函数。然而,如果没有可重复的/工作的问题,很难提出解决方案。
如果我错过了什么,请分享一个小提琴或一些代码片段,我们可以复制。

async function process() {
  const val = await retext()
    .use(keywords)
    .process(sentence, done);
  console.log(val); // should work now
  return val;
}

字符串
此外,当你调用process函数时,你需要再次调用await
Here是一个非常好的关于async/await在JavaScript中的教程。

相关问题