如何使用 promise return TypeError语言 - javascript



我写了一个 Promise 函数来将对象对象转换为对象数组:

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,这会导致我认为的类型错误?

谢谢。

你可以使用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)
}
})
}

我想您可能希望将错误作为Error的实例:

reject(new Error('error'))
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)
})
}