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

我正在使用从 GitHub 存储库中提取数据的函数。它返回一个具有诸如已关闭问题数量等指标的对象。此函数作为另一个函数的参数传递,该函数将这些指标存储在数据库中。

store(extract());

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

提前致谢。


倚天杖
浏览 147回答 3
3回答

慕勒3428872

我最终在这里试图找到类似问题的解决方案,所以对于像我这样的其他不幸的小伙子,将粘贴我发现的内容,以下工作:async function A(B: () => Promise<void>) {&nbsp; &nbsp; await B();}现在我想调用A并传递一个异步函数,然后我这样做:await A(async () => {&nbsp; &nbsp; await wait(3000);})

ABOUTYOU

异步函数只不过是一个函数返回承诺。取样。const getPromise = () =>&nbsp; Promise.resolve("1")const store = (fn) => {&nbsp; fn().then(console.log)}store(getPromise)const storeCB = (fn, cb) => {&nbsp; fn().then(cb)}store(getPromise, console.log)const storeThen = (fn) => {&nbsp; return fn().then(x => "append: " + x)}storeThen(getPromise).then(console.log)const getAsync = async () =>&nbsp; "2"store(getAsync)const storeWithAwait = async (fn) => {&nbsp; const restult = await fn()&nbsp; return restult}storeWithAwait(getAsync).then(console.log)

撒科打诨

你尝试过这样的事情吗?(async ()=>{&nbsp; &nbsp;const result = await extract();&nbsp; &nbsp;store(result);})()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript