今、私のtry/catchブロックがまったく動作するかどうかは、私にとって謎です。私はそれらをコードの周りに置いて、その後、コード内の何かがOSレベルで別のスレッド/プロセスにフォークされたと言う素晴らしい方法であると思われる「非同期」なので、try/catchは無視されますコード。Node.jsを使用すると、コードが現在のスタックを離れるときに私に教えてくれる意味がありますか?
私はそれでいいです、私はちょうどこれのいくつかの兆候があるかどうか知りたいですか?慣例では、コールがコールバックを要求すると、それはアシックです。それ以外の場合はそうではありません。私はなぜコールバックがasychを意味するのかを知るが、逆が常に真ではないことを恐れている:それは新しいコールスタックにロードされるtry/catchを使ってコールを囲むことから私を止めるものではないし、コールバック。これは本当に面倒なようですが、可能ならばすべての未捕捉例外が処理されるデフォルトのコールバックを使用するよりも、try/catchの方が少しは制御したいと思います。
- コードが の現在のスタックから離れるときの意味を教えてください。
UPDATEは:ここでの例である:それは別のコールスタックに起こるようにコード上で与えられた
var UserSchema = new mongoose.Schema({
email: {type: String, unique: true},
password: String,
firstName: String,
lastName: String,
created_at: {type: Date, default: Date.now},
updated_at: Date
});
var User = mongoose.model('User', UserSchema);
var users = [
{email: '[email protected]', firstName: 'Justin', lastName: 'Jones'},
{email: '[email protected]', firstName: 'Justin', lastName: 'Jones'}
];
users.forEach(function(user) {
var newUser = new User(user);
newUser.save(function(err, obj) {
if (!err) console.log("Saved: ", obj.email);
});
});
、、)(保存の内部例外をキャッチする方法はありません。私がsave()を呼び出すときに起こっていることを外部から知る方法はありますか?
更新:このためにハンドラを使用するように指示されている人は誰でも、thisと読むべきでしょうか?明らかに、「スレッド実行」で捕捉されていない例外を処理しないことを示唆しています。これはスレッドのようにしか動作しないためです。
あなたは大きなものの代わりに3つの質問を書く必要があります。 – kay
ありがとうございました。 –
私はupvotesの欠如は、人々が完全にお互いに矛盾する、応答と議論のトンがあったので、戸惑うと主張するつもりです。それで、私はそれがかなり良い質問だと思った。 :P –