84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
比如
function a(a,b){ $.messager.confirm('xxx','xx',function(r){ if(r){ b = 1; }else{ b = 2; } }); return b; }
我需要得到經過處理後的b,這個函數該怎麼改
回呼函數的結果只能用回呼函數傳出。
function a(a,b,callback){ $.messager.confirm('xxx','xx',function(r){ if(r){ b = 1; }else{ b = 2; } callback(b) }); }
看形式$.messager.confirm是一個非同步調用,你可以把這個調用包一層promise;
$.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
a(xxx, xxx).then(function(b) { // b就是上面resolve的值 });
雷雷
回呼函數是在你主體函數執行完後再執行,也就是說你首先得有xxx,和xx兩個參數後,回調執行,你這函數沒毛病啊。
回呼函數的結果只能用回呼函數傳出。
看形式
$.messager.confirm
是一個非同步調用,你可以把這個調用包一層promise
;呼叫
a
的時候可以如下這樣呼叫雷雷
回呼函數是在你主體函數執行完後再執行,也就是說你首先得有xxx,和xx兩個參數後,回調執行,你這函數沒毛病啊。