比如
function a(a,b){
$.messager.confirm('xxx','xx',function(r){
if(r){
b = 1;
}else{
b = 2;
}
});
return b;
}
我需要得到经过处理后的b,这个函数应该怎么改
習慣沉默2017-06-26 10:57:32
回调函数的结果只能用回调函数传出。
function a(a,b,callback){
$.messager.confirm('xxx','xx',function(r){
if(r){
b = 1;
}else{
b = 2;
}
callback(b)
});
}
曾经蜡笔没有小新2017-06-26 10:57:32
看形式$.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的值
});