Mediawiki api 中的数据问题(可能是 js 语法)

Problem with data in Mediawiki's api (probably in js syntax)

我在我的脚本中使用来自 this page 标记为 MediaWiki JS 的片段:

 const params = {
        action: "parse",
        page: stronaDyskusji,
        prop: "wikitext",
        section: index_sekcji,
    };
    const api = new mw.Api();

    api.get(params).done((data) => {
       console.log(data.parse.wikitext["*"]);
    });

一切正常,我可以在控制台中看到数据。但是当我想那样做的时候 为了处理数据 returns undefined.

var zwrot;
    const params = {
        action: "parse",
        page: stronaDyskusji,
        prop: "wikitext",
        section: index_sekcji,
    };
    const api = new mw.Api();

    api.get(params).done((data) => {
        zwrot = data.parse.wikitext["*"];
    });
    console.log(zwrot);

你能告诉我原因吗,或者给我 link 文章,这样我就可以自己学习如何处理这种数据?

api.get().done()可能是异步的

意味着它需要一个回调函数或者它 returns 一个需要解决的承诺。在您的情况下,该函数采用一个回调函数,该函数在 api.get().done() 完成处理后被调用。回调通常用于在异步操作完成后继续执行代码(如本例)。

第一个例子

api.get(params).done((data) => {
  console.log(data.parse.wikitext["*"]);
});

在您的第一个代码示例中,您在回调函数内部进行记录,这意味着它将在 api.get().done() 完成后记录。

第二个例子

var zwrot;
api.get(params).done((data) => {
  zwrot = data.parse.wikitext["*"];
});
console.log(zwrot);

在您的第二个示例中,您试图在触发回调函数 之前记录 zwart 的值。因此,尚未为 zwart 分配任何值。所以它记录 undefined

(阅读更多关于 asynchronous 的信息)