我写了一个Promise函数将Object的Object转换为Object of Array:
function objectToArray(objectOfObject) {
return new Promise((resolve,reject) => {
var newArray = Object.keys(objectOfObject).map(key => {
let object = objectOfObject[key]
object['id'] = key
return object;
})
resolve(newArray)
reject('error')
})
}
所以我的Resolve将返回一个对象数组,但是如果objectOfObject
不是对象的对象,我怎么能通过使用拒绝返回TypeError,这会导致我相信的类型错误?
感谢。
答案 0 :(得分:0)
您可以使用if...else
function objectToArray (objectOfObject) {
return new Promise((resolve, reject) => {
if (typeof objectOfObject === 'object') {
var newArray = Object.keys(objectOfObject).map(key => {
let object = objectOfObject[key]
object['id'] = key
return object
})
resolve(newArray)
} else {
reject(new TypeError())
}
})
}
或使用try... catch
function objectToArray (objectOfObject) {
return new Promise((resolve, reject) => {
try {
var newArray = Object.keys(objectOfObject).map(key => {
let object = objectOfObject[key]
object['id'] = key
return object
})
resolve(newArray)
} catch (error) {
reject(error)
}
})
}
答案 1 :(得分:0)
我想您可能希望将错误设为Error
的实例:
reject(new Error('error'))
答案 2 :(得分:0)
function objectToArray (objectOfObject) {
return new Promise((resolve, reject) => {
if (typeof objectOfObject !== 'object') {
reject(new TypeError())
}
var newArray = Object.keys(objectOfObject).map(key => {
let object = objectOfObject[key]
object['id'] = key
return object
})
resolve(newArray)
})
}