javascript - La valeur de retour de la fonction doit être traitée par la fonction de rappel de la méthode interne. Comment l'écrire ?
给我你的怀抱
给我你的怀抱 2017-06-26 10:55:32
0
4
847

Par exemple

function a(a,b){
    $.messager.confirm('xxx','xx',function(r){
        if(r){
            b = 1;
        }else{
            b = 2;
        }
    });
    return b;
}

J'ai besoin d'obtenir le b traité, comment dois-je modifier cette fonction

给我你的怀抱
给我你的怀抱

répondre à tous(4)
習慣沉默

Le résultat de la fonction de rappel ne peut être envoyé qu'à l'aide de la fonction de rappel.

function a(a,b,callback){
    $.messager.confirm('xxx','xx',function(r){
        if(r){
            b = 1;
        }else{
            b = 2;
        }
        callback(b)
    });
}
曾经蜡笔没有小新

Regardez le formulaire$.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);
        });
    });
}

Lorsque vous appelez a, vous pouvez l'appeler comme suit

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;
        }
    });
}
三叔

La fonction de rappel est exécutée après l'exécution de votre fonction principale, ce qui signifie que vous devez d'abord avoir deux paramètres, xxx et xx, puis le rappel est exécuté. Il n'y a rien de mal avec votre fonction.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal