2017-05-28 17 views
0

私はJavaScriptコードに問題があります メッセージをスワールしたいのですが、このスワールと同じ時間、この最後の位置に再び戻ってきます。私はそれをどうやってできるのか。あなたが約束ラッパーを作りたい場合Promise in javascript

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

swal()は約束を返すように表示されませんので、私の英語

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()'コードは約束を返さないので、それを約束したラッパーに入れておかないと、約束とタイミングの互換性がなくなり、あなたの '.then()'ハンドラでその約束を返すことはありません。また、そこに問題がある場合に備えて、「約束」を作成するコードを表示してください。 – jfriend00

答えて

1

のため申し訳ありませんが、あなただけswal()がサポートしている通常のコールバックメカニズムを使用する必要がありそうです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); 
});