Vue.js Can';不显示异步函数结果
我需要在我的html变量中显示:Vue.js Can';不显示异步函数结果,vue.js,fetch,Vue.js,Fetch,我需要在我的html变量中显示:{my_dates}。问题是,我不能让它与fetch一起工作,但可以与旧的ajax请求一起工作 非工作代码: created: function(){ //this.getTableData() url = 'http://dlang.ru/test' async function fetchAsync () { const response = await fetch(url);
{my_dates}
。问题是,我不能让它与fetch
一起工作,但可以与旧的ajax请求一起工作
非工作代码:
created: function(){
//this.getTableData()
url = 'http://dlang.ru/test'
async function fetchAsync () {
const response = await fetch(url);
return await response.json();
}
this.my_dates = fetchAsync();
}
$.ajax({
url: "http://dlang.ru/test",
success: function (data) {
Vue.set(app, "my_dates", data);
app.show = true;
}
});
工作代码:
created: function(){
//this.getTableData()
url = 'http://dlang.ru/test'
async function fetchAsync () {
const response = await fetch(url);
return await response.json();
}
this.my_dates = fetchAsync();
}
$.ajax({
url: "http://dlang.ru/test",
success: function (data) {
Vue.set(app, "my_dates", data);
app.show = true;
}
});
请试试这个:
created: function(){
//this.getTableData()
url = 'http://dlang.ru/test'
async function fetchAsync () {
const response = await fetch(url);
const data = await response.json();
Vue.set(app, "my_dates", data);
app.show = true;
}
fetchAsync();
}
如果您希望能够将
fetchAsync()
的结果分配给this.my_dates
,那么整个创建的钩子方法需要声明为异步
然后您还需要在fetchAsync
调用之前等待wait
:
已创建:异步函数(){
常量url=http://dlang.ru/test';
异步函数fetchAsync(){
const response=等待获取(url);
return wait response.json();
}
this.my_dates=await fetchAsync();
}
基本上,您将承诺分配给这个。我的约会日期是
而不是实际结果。这就是为什么在获得promise结果后需要分配“my_dates”属性的原因,例如您提供的jquery。您能用组件代码更新该问题吗?因为不清楚为什么它不工作。您的问题是您没有将创建的声明为异步。查看答案以了解更多详细信息。@dfsq创建的
不应声明为async
,这可能会对vue
@Derek产生意外的副作用。如果OP希望像这样使用this.my_dates=fetchAsync(),这是唯一的方法代码>@dfsq这不是唯一的方法,请参见Sergii的答案example@Derek嗯,附加包装:不一样。但我真的怀疑“会对vue产生意想不到的副作用”这一说法是否属实。其实这并不重要,因为无论如何都会调用创建的,所以它返回承诺并不重要。这是我的理解,我可能错了。