我正在使用表格/网格js库,它允许我给它一个函数,在用户右键单击以在菜单中显示一些数据时调用它。函数的返回类型是Array<String>
。但是,我想在我的函数中执行异步操作(从网络请求加载数据)并将其结果用于我的函数返回值。我怎样才能通过回调或其他方式来做到这一点?在同步功能中使用承诺
function getMenuItems(): Array<string>{
const resp: Promise = asyncLoadData()
//How can I use this async construct in my sync function???
const items = ... //e.g. map resp into my return value.
return items
}
需要明确的是,getMenuItems()
是第三方库的参数,我我无法改变它的返回值,接受一个承诺或改变的方法是异步
可能重复[如何从异步调用返回响应?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-呼叫) – Erazihel
总之,你不会得到数据。回报发生在不同的事件中,因此您在返回时没有数据。 – bhspencer