Javascript 在带有mount()钩子的Vue中异步/等待不起作用
我使用的是vue 2.5,我有一个挂载钩子,它调用一个模块,该模块获取API nedpoint并通过挂载钩子将其返回给vue组件。我以前问过这个问题,也被提到过这篇文章,并在回答中遵循了示例,但当呈现组件时,我的Vue组件变量仍然显示为未定义。这是我的密码:Javascript 在带有mount()钩子的Vue中异步/等待不起作用,javascript,vue.js,es6-promise,Javascript,Vue.js,Es6 Promise,我使用的是vue 2.5,我有一个挂载钩子,它调用一个模块,该模块获取API nedpoint并通过挂载钩子将其返回给vue组件。我以前问过这个问题,也被提到过这篇文章,并在回答中遵循了示例,但当呈现组件时,我的Vue组件变量仍然显示为未定义。这是我的密码: /modules/retrieveLeagueLeaders const getLeagueLeaders = (url, params) => { fetch(url + new URLSearchParams(par
/modules/retrieveLeagueLeaders
const getLeagueLeaders = (url, params) => {
fetch(url + new URLSearchParams(params), {
method: "get",
headers: {
Authorization:
"Basic ****=",
},
})
.then((response) => response.json())
.then((data) => {
let leagueLeaders = data;
console.log(
"leagueLeaders is %s",
leagueLeaders.cumulativeplayerstats.playerstatsentry[0].player
.LastName
);
return leagueLeaders;
});
};
module.exports = getLeagueLeaders;
和Vue代码:
/src/components/leagueLeaders
mounted: async function () {
this.qbLeaders = await getLeagueLeaders(this.fetchQbUrl, this.params);
console.log("qBLeaders is %s", this.qbLeaders);
},
})
控制台显示
qBLeaders is undefined nflLeagueLeaders.js:28
leagueLeaders is Wilson getLeagueLeaders.js:17
我已经尝试过将整个模块包装在一个承诺中,但它在运行时仍然没有返回一个承诺。我在Vue挂载钩子中使用Async/Await的方式是否有不正确的地方?我真的需要一些指导,因为我在帖子中尝试了所有的建议,但都没有用。提前感谢。不要尝试在回调中返回值,这不起作用,您可以简单地返回承诺:
const getLeagueLeaders = (url, params) => {
return fetch(url + new URLSearchParams(params), {
method: "get",
headers: {
Authorization:
"Basic ****=",
},
})
.then((response) => response.json())
};
module.exports = getLeagueLeaders;
不要尝试在回调中返回值,这不起作用,您可以简单地返回承诺:
const getLeagueLeaders = (url, params) => {
return fetch(url + new URLSearchParams(params), {
method: "get",
headers: {
Authorization:
"Basic ****=",
},
})
.then((response) => response.json())
};
module.exports = getLeagueLeaders;
您的
getLeagueLeaders()
函数不返回任何内容。您的getLeagueLeaders()
函数不返回任何内容。谢谢!简短而准确。我现在偶然发现了一个类似的方法,但你的方法甚至更短、更优雅。我认为您必须将response.json()指定给某个对象,然后返回该对象。那么response.json()是承诺的隐含解析值吗?这是我的荣幸!简短而准确。我现在偶然发现了一个类似的方法,但你的方法甚至更短、更优雅。我认为您必须将response.json()指定给某个对象,然后返回该对象。那么response.json()是承诺的隐含解析值吗?这是我的荣幸