gpt4 book ai didi

Javascript 从 map 内的函数获取回调

转载 作者:行者123 更新时间:2023-12-03 02:12:49 25 4
gpt4 key购买 nike

我已经为此苦苦挣扎了很长一段时间,但一直没能找到一个好的解决方案来解决这个问题。

我有一个数组,通过具有回调的导入函数进行映射。我想从回调中获取数据(JSON),操作它,输出它并通过另一个函数运行它。

因为node_module qbo.getBill函数有一个回调,所以我不认为我可以运行promise或async\await,但是在我添加getBill函数后我还没有成功执行此操作。

这是我的代码/我想做的事情:

var QuickBooks = require('node-quickbooks') 
var qbo = new QuickBooks(...)

let BillIds = [....]
let newArray =[]

let mapData = BillIds.map(val => {
qbo.getBill(val, function (err, Billid) {
newArray.push = {
id: Billid.Id,
balance: Billid.Balance
}
})
})



DoAThingWithAsyncronousData(newArray)

在我的一生中,在完成下一步之前我无法采取任何行动来等待异步数据,我哪里出了问题?

最佳答案

当然,您可以使用 Promise.all,您只需在 getBill 的回调周围添加一个 Promise:

const newArray = await Promise.all(
BillIds.map(val => new Promise((resolve, reject) => {
qbo.getBill(val, (err, Billid) => {
const billObj = {
id: Billid.Id,
balance: Billid.Balance
}
resolve(billObj)
});
}))
);

DoAThingWithAsyncronousData(newArray)

关于Javascript 从 map 内的函数获取回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49482087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com