gpt4 book ai didi

javascript - 如何在 Dojo for JavaScript 中使用 request.get().then 返回值?

转载 作者:行者123 更新时间:2023-12-02 17:55:36 25 4
gpt4 key购买 nike

我认为至少一个问题是,当函数仍在运行时,其余代码正在处理。这是一些详细的代码来显示问题。第一个 block 位于 HTML 文件中并使用 load.js。

require(["load.js"], function(loader) {
var load = new loader("fileLoad", "myID");
var theString = load.loadFromDB();
alert(theString);
});

使用此代码,变量“theString”在调用警报之前不会收到返回值。

这是来自 load.js 的代码:

define(["dojo/_base/declare", "dojo/request/xhr", "dojo/request"]
, function(declare, xhr, request) {

return declare(null, {
constructor: function(/*string*/ action, /*string*/ id) {
this.action = action;
this.id = id;
},
loadFromDB: function() {
request.get("../../author-load-save.php", {
query: {
action: this.action,
id: this.id
}
}).then(function(text) {
console.log("The server returned: \n", text);
return text;
});
}
});
});

最佳答案

cannot return it ,它是异步的。但是,您可以返回您已经在使用的 promise :

require(["load.js"], function(loader) {
var load = new loader("fileLoad", "myID");
load.loadFromDB().then(alert); // alert is a function that takes theString
});

define(["dojo/_base/declare", "dojo/request/xhr", "dojo/request"]
, function(declare, xhr, request) {

return declare(null, {
constructor: function(/*string*/ action, /*string*/ id) {
this.action = action;
this.id = id;
},
loadFromDB: function() {
return request.get("../../author-load-save.php", {
// ^^^^^^^
query: {
action: this.action,
id: this.id
}
}).then(function(text) {
console.log("The server returned: \n", text);
return text;
}); // makes a promise for the text
}
});
});

关于javascript - 如何在 Dojo for JavaScript 中使用 request.get().then 返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com