js 获得了字符串但return 的值是"[object Promise]",怎么才能把字符串显示出来呢?
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]",怎么才能把字符串显示出来呢?](https://static.blogweb.cn/problem/5a9b1288be9449debdbe14d15685e24c.webp)
看了一些帖子写成现在这样还是一样结果,我承认我对propmise的理解稀碎。。。怎么才能把字符串显示出来呢
回复
1个回答
test
2024-08-11
intoText函数是async函数,他将返回一个promise,所以你不能直接将intoText的返回值赋值到某个变量上,应该在回调中进行赋值intoText().then(txt => xxx.xxx = txt)
回复
适合作为回答的
- 经过验证的有效解决办法
 - 自己的经验指引,对解决问题有帮助
 - 遵循 Markdown 语法排版,代码语义正确
 
不该作为回答的
- 询问内容细节或回复楼层
 - 与题目无关的内容
 - “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容