Понимаю Vue и возвращаюсь и Асин c Жду - PullRequest
1 голос
/ 29 апреля 2020

Я новичок в 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;
    }
};

Вот мой вопрос:

  1. В блоге. js, если я уберу слово «return» перед MyFunctions.MyFunction ("blog_post"), ожидайте в myfunctions. js не активируются. Почему? Я говорю это потому, что без возврата «До» записывается в консоль, а «После» нет и ничего не возвращается.

Еще один вопрос для моего просветления:

  1. Куда возвращается MyFunctions.MyFunction ("blog_post")? Таким образом, данные возвращаются в retrievePosts (), но они являются частью {}, который, на мой взгляд, является javascript объектом? Так стало ли это как свойство внутри {}?

1 Ответ

0 голосов
/ 29 апреля 2020

Ответ 1: Вы фактически возвращаете функцию вызывающей функции retrievePosts () в асинхронном режиме c. Удалив return, функция будет выполнена, но она не окажет никакого влияния на вызывающую функцию retrievePosts ().

Ответ 2: MyFunctions.MyFunction ("blog_post") возвращается вызывающей стороне retrievePosts () функция.

...