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 的信息)
我在我的脚本中使用来自 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 的信息)