Vue.js Vue方法返回[对象承诺] {{searchWord(rawString)} 从“axios”导入axios; 导出默认值{ 方法:{ 搜索词(原始字符串){ const splitRawString=rawString.match(/^(\w\w\w)\d/); if(拆分字符串){ //如果正则表达式找到匹配项 返回轴 .得到(`https://www.url.com/path/${splitRawString[1]}`) 。然后(响应=>{ 返回响应数据; }) .catch(错误=>error); } } } };

Vue.js Vue方法返回[对象承诺] {{searchWord(rawString)} 从“axios”导入axios; 导出默认值{ 方法:{ 搜索词(原始字符串){ const splitRawString=rawString.match(/^(\w\w\w)\d/); if(拆分字符串){ //如果正则表达式找到匹配项 返回轴 .得到(`https://www.url.com/path/${splitRawString[1]}`) 。然后(响应=>{ 返回响应数据; }) .catch(错误=>error); } } } };,vue.js,axios,Vue.js,Axios,在上面的例子中,我试图输出axios承诺的结果 不幸的是,标记的内容是:[对象承诺] 如果我使用console.log(response.data);它不是返回response.data,而是起作用。这是因为您需要将放在函数上,而不是函数内部。发生的情况是,由于您没有使用,函数没有完成执行并继续执行。然后在它之后使用。 试试这个: data: () => ({ something: null}) ... async searchWord(rawString) { c

在上面的例子中,我试图输出axios承诺的结果

不幸的是,
标记的内容是:[对象承诺]


如果我使用
console.log(response.data)
;它不是
返回response.data
,而是起作用。

这是因为您需要将
放在函数上,而不是函数内部。发生的情况是,由于您没有使用
,函数没有完成执行并继续执行。然后在它之后使用
。
试试这个:

data: () => ({ something: null})
...
async searchWord(rawString) {
            const splitRawString = rawString.match(/^(\w\w\w)\d/);
            if (splitRawString) {
                // If regex found a match
                this.something =  await axios
                    .get(`https://www.url.com/path/${splitRawString[1]}`)

            }
        }
    }

在模板中粘贴
something
,而不是函数本身。

因为
searchWord
被标记为
async
它仍然返回承诺。这并不能解决问题。请编辑我的答案,在调用搜索时调用该函数。@Michael我不想将响应数据分配给Vue data函数。我希望响应数据就在这里:
{{searchWord(rawString)}
。正如您所看到的,
searchWord
接受一个参数。然后您必须进行内联
。然后,
这不是一个好主意……为什么您不能使用一个属性并将其内联?