我正在嘗試調用API來獲取一些數據。當電話返回有效的數據,它的工作原理!然而,當它擊中一個API錯誤或錯誤,我想創建基於關閉對數據的反應,我得到這個錯誤:Bluebird.js未處理的拒絕錯誤使用請求
Unhandled rejection Error: Data not found!
at Request.request.post [as _callback]
.
.
這是我使用的文件:
let grabSomeData = new BluebirdPromise((resolve, reject) => {
pullers.grabData(dataID, (err, res) => {
if (err) {
return reject(err);
}
return resolve(res);
});
});
grabSomeData.then((fulfilled, rejected) => {
console.log('res: ' + fulfilled);
console.log('rej: ' + rejected);
});
在我的其他文件製作的HTTP請求,
grabData(dataID, grabDataCallback) {
let bodyObj = {
query: dataByIDQuery,
variables: {
id: dataID
}
};
// grab the data
request.post(
{
url: dataURL,
body: JSON.stringify(bodyObj)
}, (err, httpResponse, body) => {
if (err) {
return grabDataCallback(err);
}
let res = JSON.parse(body);
if (res.data.dataByID !== null) {
return grabDataCallback(null, res.data.dataByID);
}
return grabDataCallback(Boom.notFound('Data not found!'));
}
);
}
什麼'con sole.log(res.data.dataByID)'給你 –
有目的地測試一個錯誤時,它不會達到這個目的。它會顯示上面的錯誤。當對有效數據進行測試時,它會打印出數據就好了@ p0k8_ – nicolascoding
使用else塊中的最後一個return語句if(res.data.dataByID!== null){return grabDataCallback(null,res.data.dataByID) ; } else {return grabDataCallback(Boom.notFound('Data not found!')); }' –