我的代码:
export const convertToTickerObject = (data) => {
const keys = [
'id',
'last',
'lowestAsk',
'highestBid',
'percentChange',
'baseVolume',
'quoteVolume',
'isFrozen',
'high24hr',
'low24hr'
];
const object = {};
data.forEach((value, i) => {
if (i === 0) {
object.name = getCurrencyPairId(value);
return; //escape arrow function
}
const key = keys[i];
object[key] = value;
});
return object;
};
错误:
UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ forEach” UnhandledPromiseRejectionWarning:未处理的承诺拒绝。该错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未经.catch()处理的诺言而引起的。 (拒绝ID:1) (节点:7188)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。
我尝试使用async / await,但是此警告不断发生。
如何解决此警告? :(
答案 0 :(得分:0)
正如错误所言,您传递的参数可能未定义或不是对象。试试这个:
const convertToTickerObject = (data) => {
if ( typeof data !== 'object' ){
return 'Not object. Parameter type: '+ typeof data;
}
if( Object.keys(data).length === 0 && data.constructor === Object ){
return 'object empty';
}
const keys = [
'id',
'last',
'lowestAsk',
'highestBid',
'percentChange',
'baseVolume',
'quoteVolume',
'isFrozen',
'high24hr',
'low24hr'
];
const object = {};
data.forEach((value, i) => {
if (i === 0) {
object.name = getCurrencyPairId(value);
return; //escape arrow function
}
const key = keys[i];
object[key] = value;
});
return object;
};
这可能揭示其他地方的错误。像我这样添加的支票一样好。