javascript - 从 esriRequest 回调外部获取响应数据
问题描述
我正在尝试使用“esri/request”从休息服务中获取数据。我的问题是如何从这个请求中获取响应数据并在其他函数中使用它。但是不知道如何在 fromOutSide() 下面不使用 window 变量。
https://developers.arcgis.com/javascript/3/jsapi/esri.request-amd.html
终于找到了从外部获取变量的方法,然后使用下面的 lang.hitch 代码
define([
'dojo',
'dojo/_base/declare',
'jimu/BaseWidget',
'dojo/_base/array',
'dojo/_base/lang',
'esri/request'
],
function(
dojo,
declare,
BaseWidget,
array,
lang,
esriRequest,
) {
// Run
this.getMapService;
getMapService: function() {
var requestHandle = esriRequest({
url: "https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/0?f=pjson",
content: {
f: "json"
},
handleAs: "json",
callbackParamName: "callback"
});
requestHandle.then(this.requestSucceeded, this.requestFailed);
},
requestSucceeded: function(response, io) {
let responseVar = response;
console.log(responseVar);
},
requestFailed: function(error, io) {
console.log(error);
},
fromOutSide: function() {
// ? ? ? ?
console.log(myVar);
}
});
Updated code: After lang.hitch I was able to use my variables inside .then
=========================================================
define([
'dojo/_base/lang',
'esri/request'
],
function (
lang,
esriRequest
) {
return declare([BaseWidget], {
getWindDirection: function () {
this.requestHandleNode.innerHTML = "";
requestArgs = {
url: this.config.windDirRestUrl,
content: {
f: "json"
},
handleAs: "json",
callbackParamName: "callback",
};
esriRequest(requestArgs).then(lang.hitch(this, function (response) {
this.requestSucceeded(response);
}),
lang.hitch(this, function (error) {
this.requestFailed(error);
})
);
},
requestSucceeded: function (response, io){
this.showWindDirection(response);
},
requestFailed: function (error){
console.log(error);
},
showWindDirection: function (response){
console.log(response)
}
});
});
解决方案
推荐阅读
- telerik - RADAsyncUpload 超越容器
- netsuite - 关于 EC 角色错误的采购查看请求
- javascript - 更改背景颜色动画不起作用
- javascript - 关于 for 循环中 Postman 中的 sendRequest 的问题
- python - Scrapy 跟随链接但不返回数据,可能是时间问题?
- bash - 有没有办法让我从 bash 中的命令输出中获取特定的单词?
- javascript - 多个图像到不同文本弹出框的 HTML 代码
- javascript - 如何处理 Firebase 中过期的用户 ID 令牌?
- python - 在 Spyder 的打开函数中使用相对路径时出错
- .htaccess - htaccess 不会将 sitemap.php 转换为 sitemap.xml