首页 > 解决方案 > 我将如何以编程方式调用对象方法?像 MyObject.XVariable(//一些函数)

问题描述

我有一个对象,它从 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()”的数组中的变量

标签: javascriptarraysreactjs

解决方案


我假设您的数据可能是如何构建的。请看下面,您可能会了解如何使用“等待”动态调用函数

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)


推荐阅读