比如
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的值
});