Javascript 如何将异步函数作为参数传递

Javascript 如何将异步函数作为参数传递,javascript,async-await,Javascript,Async Await,我正在使用一个从GitHub存储库提取数据的函数。 它返回一个对象,其中包含一些度量,如已解决问题的数量等。 此函数作为另一个将这些度量存储在数据库中的函数的参数传递 store(extract()); 问题是提取函数是异步的(出于某种原因,它需要异步),并且不返回值。。。 我不知道如何很好地管理异步。如何强制store()等待extract()返回度量 提前谢谢。你试过这样的东西吗 (async ()=>{ const result = await extract(); s

我正在使用一个从GitHub存储库提取数据的函数。 它返回一个对象,其中包含一些度量,如已解决问题的数量等。 此函数作为另一个将这些度量存储在数据库中的函数的参数传递

store(extract());
问题是提取函数是异步的(出于某种原因,它需要异步),并且不返回值。。。 我不知道如何很好地管理异步。如何强制store()等待extract()返回度量


提前谢谢。

你试过这样的东西吗

(async ()=>{
   const result = await extract();
   store(result);
})()
或者使用类似以下内容的异步:

(async () => {
   const result = await extract();
   store(result);
})();
await A(async () => {
    await wait(3000);
})
或者使用经典语法:

extract().then(store);

异步函数只是一个函数返回承诺。取样

const getPromise=()=>Promise.resolve(“1”)
常数存储=(fn)=>{
fn().then(console.log)
}
商店(getPromise)
const storeCB=(fn,cb)=>{
fn().然后(cb)
}
存储(getPromise,console.log)
const storeThen=(fn)=>{
返回fn()。然后(x=>“append:+x)
}
storeThen(getPromise.then(console.log)
const getAsync=async()=>“2”
存储(getAsync)
const storeWithAwait=async(fn)=>{
const result=wait fn()
返回结果
}

storeWithAwait(getAsync)。然后(console.log)
我在这里试图找到一个类似问题的解决方案,所以对于像我这样的倒霉小子,我要粘贴我发现的,以下方法有效:

async function A(B: () => Promise<void>) {
    await B();
}

您只能处理Promise
extract
Products或使
store
异步,并使用
Wait
。无论如何,这基本上是一样的,因为
await
仍在使用承诺。
我如何强制store()等待extract()返回度量?
-->
store(await extract())
如果包含的函数是异步的,我如何将导出声明为异步的?示例:exports.extract=()=>{}或
存储(等待extract())
。如何将导出声明为异步?示例:exports.extract=()=>{}如果您只有一个脚本要导出,那么
导出默认异步函数(){}
,如果您有更多的东西要导出,那么您可以这样做:首先声明您的函数,例如
异步函数myFunction(){}
,然后您可以导出它
导出{myFunction}
然后从“path/to/script”导入它
import{myFunction},或者只是
extract()。然后(store)
。如何将导出声明为异步?示例:exports.extract=()=>{}