假设我具有以下功能getData
getData = (param) => {
// jquery
$.ajax(...).done(..)
}
如何将getData
转换为阻塞函数,以使refreshPage
仅在完成getData
中的ajax之后被调用?
data = getData(..)
refreshPage()
请注意:我不想将refreshPage
传递到getData
内的ajax回调中
好的...这是我尝试过的并且似乎可以正常工作的情况:
getData = (param) => {
// jquery
return $.ajax(...).done(..)
}
getData.then(refreshPage())
答案 0 :(得分:3)
function getData = (param) => {
// jquery
return $.ajax(...);
}
async test() {
var x = await getData()
console.log(x)
}
答案 1 :(得分:1)
getData = (param) => $.ajax(...).done(..)
getData().done(() => refreshPage())
// or
getData().done(refreshPage)
答案 2 :(得分:1)
您可以尝试以下操作:
function getData (param)
{
...........
return new Promise((resolve, reject) =>{
jQuery.ajax({...});
});
}
...........
getData(param).then(()=>refreshPage());
答案 3 :(得分:0)
您应该从get data方法返回一个承诺
getData = (param) => {
return new Promise(function(resolve, reject) {
}
}
然后在ajax中完成操作
在那叫resolve(data)