比如
function a(a,b){
$.messager.confirm('xxx','xx',function(r){
if(r){
b = 1;
}else{
b = 2;
}
});
return b;
}
我需要得到经过处理后的b,这个函数应该怎么改
比如
function a(a,b){
$.messager.confirm('xxx','xx',function(r){
if(r){
b = 1;
}else{
b = 2;
}
});
return b;
}
我需要得到经过处理后的b,这个函数应该怎么改
看形式$.messager.confirm
是一个异步调用,你可以把这个调用包一层promise
;
function a(a,b) {
return new Promise(function(resolve, reject) {
$.messager.confirm('xxx','xx',function(r){
if (r) {
b = 1;
} else{
b = 2;
}
resolve(b);
});
});
}
调用a
的时候可以如下这样调用
a(xxx, xxx).then(function(b) {
// b就是上面resolve的值
});
function a(a,b){
let t;
$.messager.confirm('xxx','xx',function(r){
if(r){
t = 1;
}else{
t = 2;
}
});
return t;
}
//或者
function a(a,b){
$.messager.confirm('xxx','xx',function(r){
if(r){
return 1;
}else{
return 2;
}
});
}
9 回答9.4k 阅读
6 回答5.1k 阅读✓ 已解决
5 回答3.7k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10.1k 阅读
5 回答8.3k 阅读
2 回答10.4k 阅读✓ 已解决
回调函数的结果只能用回调函数传出。