Я новичок в Javascript и Vue, и мне тяжело оборачиваться вокруг возвращения, asyn c и жду совместной работы. Я пришел из Python фона, а синтаксис JS совершенно другой
Итак ... немного предыстории проблемы ... Я создаю блог Vue и создаю несколько магазинов Vuex, используя Модульный режим. Я также создаю функцию для извлечения данных из Prismi c.
. / 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;
}
};
Вот мой вопрос:
- В блоге. js, если я уберу слово «return» перед MyFunctions.MyFunction ("blog_post"), ожидайте в myfunctions. js не активируются. Почему? Я говорю это потому, что без возврата «До» записывается в консоль, а «После» нет и ничего не возвращается.
Еще один вопрос для моего просветления:
- Куда возвращается MyFunctions.MyFunction ("blog_post")? Таким образом, данные возвращаются в retrievePosts (), но они являются частью {}, который, на мой взгляд, является javascript объектом? Так стало ли это как свойство внутри {}?