异步ajax设置返回值因为是异步 所以没获取到值就会返回接收到的往往是undefined那么把异步改成同步以外有没有什么方法可以获取异步的ajax我本来的思路是接受函数给个async 然后调用语句加awiat但是获取的是promise之类的东西 并没有获取到数据异步怎样获取返回值呢?在不使用框架的情况下 原生js有没有办法解决?
2 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
闭包
function a1(data){
console.log(data)
}
$.ajax().done(function(data){
a1(data)
})
可以用es6的Generator改造promise为同步 co.js就是这样做的 co简写:
function co(generator) {
return function(fn) {
var gen = generator();
function next(err, result) {
if(err){
return fn(err);
}
var step = gen.next(result);
if (!step.done) {
step.value(next);
} else {
fn(null, step.value);
}
}
next();
}
}
co(function * () {
var data= yield $.ajax('a.json');
//同步写法
console.log(data);
})
添加回答
举报
0/150
提交
取消