js 获得了字符串但return 的值是"[object Promise]",怎么才能把字符串显示出来呢?

作者站长头像
站长
· 阅读数 15

js 获得了字符串但return 的值是"[object Promise]"

const into = async (ids) => {
  const numbersArray = ids.split('').map(Number)
  const fetchData = async (number) => {
    if (number) {
      const data = await tubeApi.getAnyDevices({ id: number })
      return data && data.deviceName ? data.deviceName : ''
    }
    return ''
  }
  const result = Promise.all(numbersArray.map(fetchData))
  return (await result).filter(Boolean)
}
const intoText = async (ids) => {
  if (ids) {
    let getit = await into(ids)
    console.log(getit.join(','))
    return getit.join(',')
  }
}

打印结果没问题js 获得了字符串但return 的值是"[object Promise]",怎么才能把字符串显示出来呢?

看了一些帖子写成现在这样还是一样结果,我承认我对propmise的理解稀碎。。。怎么才能把字符串显示出来呢

回复
1个回答
avatar
test
2024-08-11

intoText函数是async函数,他将返回一个promise,所以你不能直接将intoText的返回值赋值到某个变量上,应该在回调中进行赋值intoText().then(txt => xxx.xxx = txt)

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容