私は2つの約束を使用しようとしています、第2約束は最初の約束に依存します。そして3つの約束は両方の約束に依存します。しかし、最初の約束は、私は第二約束で、このエラーを取得する失敗したとき:他の約束の中で約束の失敗を処理することができません
UnhandledPromiseRejectionWarning:TypeError例外:未処理の除去(2却下ID)約束ヌル
のプロパティを読み取ることができません「名前を」これは私のコードです:
var Asset = require('../models/index').Asset;
var Price = require('../models/index').Price;
var currency = req.params.currency;
var values = {
where: { slugify_url: currency },
};
// get asset information
var promisse_asset = Asset.findOne(values);
// get prices information on this asset
var promisse_prices = promisse_asset.then(function(asset) {
console.log(asset); // outputs null
// some processing
if (!!asset) {
...
});
return Promise.all([promisse_asset, promisse_prices]).then(function([asset, results]) {
...
どうすればこの問題を解決できますか?自分のデータベースに資産が見つからないときはどうすれば対処できますか?
「キャッチ」(または第2の 'then'引数)が不足しているようです。それがなければ、あなたはそれを手に入れました_未解決の約束の拒否_エラー – Phil
@Phil最初の約束の後にキャッチを入れますが、キャッチ状態に入っていないようです。私はどうすればいいのですか? –
ああ、最初の約束事は成功して解決されています。ちょうどヌル値です。その場合、約束を破らせるためにエラーを投げるべきです。それは 'Promise.all'約束で捕らえられる必要があります – Phil