2 약속을 사용하려고합니다. 두 번째 약속은 첫 번째 약속에 달려 있습니다. 그리고 3 약속은 두 약속 모두에 달려 있습니다. 하지만 두 번째 약속이 오류가 실패하면 첫 번째 약속 :다른 약속 내에서 약속 실패를 처리 할 수 없습니다.
UnhandledPromiseRejectionWarning : 처리되지 않은 약속 거절 (거부 ID : 2) : 형식 오류가 :
이 널 (null)
의 특성 '이름을'읽을 수 없습니다 것은 내 코드입니다 :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]) {
...
어떻게 해결할 수 있습니까? 내 데이터베이스에서 자산을 찾지 못하면 어떻게 처리 할 수 있습니까?
'catch'(또는 두 번째'then' 인수)가 누락 된 것처럼 보입니다. 그것 없이는, 당신은 그것을 얻습니다 _ "처리되지 않은 약속 거부"_ 오류 – Phil
@Phil 나는 첫 번째 약속 후에 캐치를 넣습니다. 그러나 캐치 조건에 들어 가지 않는 것 같습니다. 어떻게해야합니까? –
아, 첫 번째 약속은 'null'값으로 성공적으로 해결됩니다. 이 경우 약속을 실패하게 만들려면 오류를 던져야합니다. 그 사람은'Promise.all' 약속에 잡힐 필요가 있습니다 – Phil