了解 Vue 和 Return 以及 Async Await
Understand Vue and Return and Async Await
我是 Javascript 和 Vue 的新手,我很难理解 return,async 和 await 一起工作。我来自 Python 背景,JS 语法完全不同
所以...问题的一些背景....我正在构建一个 Vue 博客并使用模块模式创建多个 Vuex 商店。我还创建了一个函数来从 Prismic 检索数据。
./store/blog.js
import {MyFunctions} from "../plugins/myfunctions.js";
export const actions = {
async retrievePosts() {
console.log("HELLO")
return MyFunctions.MyFunction("blog_post");
}
}
./plugins/myfunctions.js
import Prismic from "prismic-javascript";
import PrismicDom from "prismic-dom" //importing the Dom
import PrismicConfig from "../prismic.config.js";
export const MyFunctions = {
MyFunction: async function (doctype) {
console.log("Before")
const api = await Prismic.getApi(PrismicConfig.apiEndpoint)
let blog_post = {}
const results = await api.query(
Prismic.Predicates.at("document.type", doctype),
{ lang: "en-us" } //This is a Prismic query option
)
console.log("After")
result = results.results
return result;
}
};
这是我的问题:
- 在blog.js中,如果我删除MyFunctions.MyFunction("blog_post")前面的单词"return",myfunctions.js中的等待不会被激活.为什么?
我这样说是因为没有 return,"Before" 是控制台记录的,但 "After" 不是,也没有 returned.
再请教一个问题:
- returnMyFunctions.MyFunction("blog_post")return去哪儿了?所以数据被 returned 到 retrievePosts() 但它是 {} 的一部分,我相信这是一个 javascript 对象?那么它是不是变成了{}里面的属性?
Ans 1:You 实际上是 return 在异步模式下向 retrievePosts() 的调用者调用一个函数。通过删除 return,函数将被执行,但它不会对 retrievePosts() 函数的调用者产生任何影响。
Ans 2:The MyFunctions.MyFunction("blog_post") returned 到 retrievePosts() 函数的调用者。
我是 Javascript 和 Vue 的新手,我很难理解 return,async 和 await 一起工作。我来自 Python 背景,JS 语法完全不同
所以...问题的一些背景....我正在构建一个 Vue 博客并使用模块模式创建多个 Vuex 商店。我还创建了一个函数来从 Prismic 检索数据。
./store/blog.js
import {MyFunctions} from "../plugins/myfunctions.js";
export const actions = {
async retrievePosts() {
console.log("HELLO")
return MyFunctions.MyFunction("blog_post");
}
}
./plugins/myfunctions.js
import Prismic from "prismic-javascript";
import PrismicDom from "prismic-dom" //importing the Dom
import PrismicConfig from "../prismic.config.js";
export const MyFunctions = {
MyFunction: async function (doctype) {
console.log("Before")
const api = await Prismic.getApi(PrismicConfig.apiEndpoint)
let blog_post = {}
const results = await api.query(
Prismic.Predicates.at("document.type", doctype),
{ lang: "en-us" } //This is a Prismic query option
)
console.log("After")
result = results.results
return result;
}
};
这是我的问题:
- 在blog.js中,如果我删除MyFunctions.MyFunction("blog_post")前面的单词"return",myfunctions.js中的等待不会被激活.为什么? 我这样说是因为没有 return,"Before" 是控制台记录的,但 "After" 不是,也没有 returned.
再请教一个问题:
- returnMyFunctions.MyFunction("blog_post")return去哪儿了?所以数据被 returned 到 retrievePosts() 但它是 {} 的一部分,我相信这是一个 javascript 对象?那么它是不是变成了{}里面的属性?
Ans 1:You 实际上是 return 在异步模式下向 retrievePosts() 的调用者调用一个函数。通过删除 return,函数将被执行,但它不会对 retrievePosts() 函数的调用者产生任何影响。
Ans 2:The MyFunctions.MyFunction("blog_post") returned 到 retrievePosts() 函数的调用者。