我有一个对象,该对象从API调用中获取输入以填充它。
let MyDog = {
Name: 'Dog',
}
let arrayFunctions;
fetchDogsFunctions(dogAPIUrl).then(res => {
//results is an array that has a list of functions the dog has, like //getStats(), or walkDog()
arrayFunctions = res;
})
现在,我想映射数组结果并像...那样在我的狗上调用函数
arrayFunctions.map(item => {
await MyDog.item(//Params)
})
我该怎么做?
从文件中设置MyDog的位置,然后根据数组函数,对于每个函数,它以编程方式填充对新函数(如MyDog.item)的调用,其中item是名为“ Walk()”的数组中的变量“
答案 0 :(得分:0)
我假设您的数据可能如何组织。请在下面看一下,您可能会想到如何使用“等待”动态调用函数的想法
const MyDog = {
funA(a) { return Promise.resolve('Function A called with parameter ' + a) }
, funB(b) { return Promise.resolve('Function B called with parameter ' + b) }
}
const arrayFunctions = ['funA', 'funB']
Promise.all(arrayFunctions.map(async (item, i) =>
await MyDog[item](++i))
)
.then(console.log)
答案 1 :(得分:0)
我的MyDog对象中看不到任何属性名称“ item”
答案 2 :(得分:0)
答案是要做的:
MyDog[item]()
在循环内。
我在询问执行此操作的正确语法