javascript - 从函数内的结果填充数组对象

标签 javascript ecmascript-6

我需要调用结果(函数中的数组)在函数外部调用

我的代码看起来像这样

import axios from 'axios'
var cheats
(() => {
  axios.get('api/cheats/getcheaternames')
  .then((response) => {
    cheats = response.data
    console.log(cheats, 'yeah')//results[Good, Bad]
    return cheats
  })
  .catch((error) => {
     console.log(error, 'err')
  })
})()

const it = [
    {
        name: ...
    }
]

这就是我对结果进行硬编码的方式,

const it = [
   {
      name: 'Good'
   },
   {
      name: 'Bad'
   },
   {
      name: 'Handsome'
   }
]

有动态填充 it 变量的想法吗?

更新

我没有足够的声誉来回答我自己的问题,这是我重构代码以使其正常工作的方法

import axios from 'axios'

var cheats
var it = []
let myFirstPromise = new Promise((resolve, reject) => {
    setTimeout(() => {
       resolve(axios.get('api/cheats/getcheaternames')
        .then((response) => {
            cheats = response.data
            return cheats
        })
        .catch((error) => {
            console.log(error, 'err')
        }))
    }, 250)
})

myFirstPromise.then((successMessage) => {
// for (var i = 0; i < successMessage.length; i++) {
//     it.push({name: i})
// }
   for (const value of successMessage) {
      it.push({name: value})
   }
})

export default {
  items: [
    {
        name: 'Dashboard',
        url: '/dashboard',
        icon: 'icon-speedometer',
        badge: {
            variant: 'primary',
            text: 'Cheaters'
        }
    },
    {
        title: true,
        name: 'Elements',
        class: '',
        wrapper: {
            element: '',
            attributes: {}
        }
    },
    {
        name: 'Cheats',
        url: '/components',
        icon: 'icon-puzzle',
        children: it
    },
    {
        name: 'Angular Version',
        url: 'https://angular.herokuapp.com/',
        icon: 'icon-cloud-download',
        class: 'mt-auto',
        variant: 'success'
    }
]

}

如果有任何改进此代码的想法,我们将不胜感激。我是否遗漏了某些内容,或者我是否正确使用了这段代码?

最佳答案

不完全清楚您要问什么,但如果您问如何更改 items 变量,请将其更改为 let 而不是 const 并将代码更改为:

.then((response) => {
    cheats = response.data;
    console.log(cheats, 'yeah')//results[Good, Bad]
    items = response.data.map(item => ({ name: item }));
    return cheats
 })

关于javascript - 从函数内的结果填充数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47467358/

相关文章:

javascript - 无法读取 null 的属性 addEventListener

javascript - 动态更新工具提示日期格式 Highcharts

javascript - Redux ES6(BabelJS): is there a map function that can iterate this structure?

javascript - 为什么 MS Edge 不使用 spread element 和 querySelector?

javascript - 在构造函数中使用 return 来包装 Node 模块

javascript - 使用显示模式将 ES6 类属性设为私有(private)

javascript - jQuery 在循环中注册事件

javascript - jQuery - 为每个对象创建新的 div?

javascript - 如何使用 DOM 和 Javascript 创建菜单?

javascript - 为什么不应该在 JavaScript ES6 的导出默认行中声明 const 变量?