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