【发布时间】:2018-10-25 07:25:20
【问题描述】:
我有两个功能,
function getRequest(url, api_key, callback) {
$.ajax({
url: url,
contentType: 'application/json',
type: 'get',
beforeSend: function(xhr){
xhr.setRequestHeader('Authorization', 'Bearer ' + api_key);
},
success: function(response) {
callback(response);
},
error: function(error) {
console.log(error);
document.getElementById("droplets").textContent = error;
}
});
}
function getDroplets(url, api_key) {
var request = getRequest(url, api_key, function(response) {
var droplets = response.droplets;
var numDroplets = droplets.length;
return {
droplets: droplets,
numDroplets: numDroplets
};
});
alert(request);
}
我想要另一个函数,我们称之为listDroplets,它将调用getDroplets() 并处理从它返回的数据。我不知道该怎么做,因为getDroplets 里面有一个异步调用。
编辑:我尝试了以下方法,但仍然无法正常工作。
async function listDroplets() {
await getDroplets(api_url, api_key);
alert(request.numDroplets);
}
【问题讨论】:
-
getRequest 应该返回
$.ajax(...丢弃成功和错误。在 getDroplets 中你可以做getrequest(...).then(result=>{return alteredResult}).then(finalResult=>...).catch(error=>handle your error)当前获取请求(称为 getRequest)正在实现 getDroplets 应该实现的东西(当出现错误时) -
@mplungjan 查看我更新的帖子
-
@HMR 如果成功是 Ajax 请求成功时调用的结果,我将如何返回结果?
-
重新打开,但仍然是stackoverflow.com/questions/14220321/…的骗子