2017-05-28 199 views
0

我在我的javascript代码中遇到了问题 我想swal消息,然后回到顶端但是,这个swal和回到顶部同时,然后再次到最后的位置。我如何做到这一点。对不起,我的英语javascript中的承诺

promise.then(function(){ 
    swal({ 
     title: "Ok", 

     type: "success", 
     confirmButtonText: "Close" 
    }); 
}) 
.then(function(){ 
     $('html,body').animate({ 
    scrollTop: 0 
}, 700); 
}) 
+0

你能发布你的完整代码, –

+1

这很难理解你的问题。请使用'swal()'将链接发布到哪个库中,以便我们可以查看该库的文档并解释上下文。你有角度使用它吗?你试图让动画在用户点击'swal()'中的按钮后发生?你的问题是动画很快发生? – jfriend00

+1

我看到的'swal()'代码没有返回一个promise,所以它不会与promise中的时间兼容,也不会将它放入promise包装中,然后在'.then()'处理程序中返回该promise。另外,如果出现问题,请显示创建'promise'的代码。 – jfriend00

回答

1

由于swal()似乎并没有返回一个承诺,看来你应该只使用swal()支持正常的回调机制:

swal({ 
    title: "Ok", 
    type: "success", 
    confirmButtonText: "Close" 
}, function() { 
    $('html,body').animate({scrollTop: 0}, 700); 
}); 

如果你想使一个承诺包装为swal(),你能做到这一点是这样的:

function swalP(options) { 
    return new Promise(function(resolve, reject) { 
     swal(options, resolve); 
    }); 
} 

然后,你可以使用:

swalP({ 
    title: "Ok", 
    type: "success", 
    confirmButtonText: "Close" 
}).then(function() { 
    $('html,body').animate({scrollTop: 0}, 700); 
});