2016-11-15 14 views

答えて

0

これは機能します。これが良い考えであれば、私は他の開発者から意見を得たいと思っています。

function isolate(deferred) { 

    return { 
     exec: function() { 
      var args = arguments; 
      var timeout = setTimeout(function() { 
        deferred.apply(this, args); 
        clearTimeout(timeout); 
       },1); 
     } 
    }; 
} 

function save(name, drawing, data, onComplete) { 
    return db.drawings.put(
     { name: name, drawing, data: data 
    ).then(isolate(onComplete).exec); 
} 

約束機能が完了し、この方法は、Dexie.jsはそれについて非常に満足して、その後、新しいものがDexie(または任意の他の約束スタイルのハンドラは)もう気にしない、タイムアウトで開始します。

0

エラーが発生したときにコードをデバッグして中断する必要がある場合は、推奨される回避策を実行せずにPromiseベースのコードでも行うことができます。

ChromeのF12デバッガで、「キャッチされた例外で一時停止する」にチェックを入れます。また、ブラックボックスの第3部のライブラリを確認して、babel、jquery、dexieの機能テストを終了しないようにしてください。これは、スクリプトコードのどこかを右クリック(デバッガがブレークインするとき)し、 "ブラックボックス"を選択するだけで簡単に行えます。あなた自身のコードをブラックボックスにしないようにしてください!

これで、プロミスコールバックから起動しても、エラーが発生したときにデバッガが壊れます。

+0

確かに、それは役立ちますが、キャッチされるはずのエラーがたくさんあり、デバッグが難しくなります – GeeWhizBang

+0

私はブラックボックスのことを知らなかったので、それを試してみましょう。 – GeeWhizBang

関連する問題