为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

倚天杖 2022-05-22 10:22:40
我正在使用从 GitHub 存储库中提取数据的函数。它返回一个具有诸如已关闭问题数量等指标的对象。此函数作为另一个函数的参数传递,该函数将这些指标存储在数据库中。store(extract());问题是提取函数是异步的(出于某种原因,它需要是异步的)并且没有返回值......我不知道如何很好地管理异步。我如何强制 store() 等待 extract() 返回指标?提前致谢。
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

我最终在这里试图找到类似问题的解决方案,所以对于像我这样的其他不幸的小伙子,将粘贴我发现的内容,以下工作:


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

    await B();

}

现在我想调用A并传递一个异步函数,然后我这样做:


await A(async () => {

    await wait(3000);

})


查看完整回答
反对 回复 2022-05-22
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

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


const getPromise = () =>  Promise.resolve("1")


const store = (fn) => {

  fn().then(console.log)

}

store(getPromise)


const storeCB = (fn, cb) => {

  fn().then(cb)

}

store(getPromise, console.log)


const storeThen = (fn) => {

  return fn().then(x => "append: " + x)

}

storeThen(getPromise).then(console.log)


const getAsync = async () =>  "2"


store(getAsync)



const storeWithAwait = async (fn) => {

  const restult = await fn()

  return restult

}


storeWithAwait(getAsync).then(console.log)


查看完整回答
反对 回复 2022-05-22
?
撒科打诨

TA贡献1934条经验 获得超2个赞

你尝试过这样的事情吗?


(async ()=>{

   const result = await extract();

   store(result);

})()


查看完整回答
反对 回复 2022-05-22
  • 3 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信