私はArray
で拒否するメソッドを持つ約束ベースのライブラリ(Node.js 0.10 - 6.x用)を持っています。単一タイプのエラーで配列を結合する
Bluebirdを使用すると、警告:a promise was rejected with a non-error
が発生します。
アレイをカスタムエラータイプにラップするのは簡単ですが、ライブラリの下位互換性を破壊しないようにしたいと考えています。
Bluebirdで表示されているオブジェクトを同時に実装することは可能ですか?Error
オブジェクトを同時に使用することはできますか?
エキストラ
私はNode.jsの0.10との互換性のために、次のヘルパーを使用Error
から継承する - 0.12:
function inherits(child, parent) {
child.prototype.__proto__ = parent.prototype;
}
そしてBluebirdソースを見て、多分に方法があります何とかその確認を迂回する:
Promise.prototype._rejectCallback =
function(reason, synchronous, ignoreNonErrorWarnings) {
var trace = util.ensureErrorObject(reason);
var hasStack = trace === reason;
if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {
var message = "a promise was rejected with a non-error: " +
util.classString(reason);
this._warn(message, true);
}
this._attachExtraTrace(trace, synchronous ? hasStack : false);
this._reject(reason);
};
私はちょうどNode.js(0.10 - 6.x) –
のために特に私の質問を更新しました。それらのいくつかは '拡張エラー'を許可しますが、いくつかはありません。 https://kangax.github.io/compat-table/es6/で、v4とv5は 'use strict'を必要とします(間違って)、v6ではエラーの一般的なサブクラス化が可能ですが、v0.10とv0.12はそうではありません。 – ssube
私はすでにNode.js 0.10 - 0.12の下でサブクラス化のためにshimを使用していますが、うまく動作します。私はそれもそこで行うことができると思いますか? :) 'function継承する(子、親){ child.prototype .__ proto__ = parent.prototype; } ' –