我是Java和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;
}
};
这里是我的问题:
对我的启示还有一个问题:
答案1:实际上,您正在以异步方式将函数返回给retrievePosts()的调用方。通过删除return,函数将被执行,但对retrievePosts()函数的调用者没有任何影响。
回答2:The MyFunctions.MyFunction(“ blog_post”)被返回给restorePosts()函数的调用者。