在JavaScript中使用承诺时,回调中缺少参数
我使用在JavaScript中使用承诺时,回调中缺少参数,javascript,jquery,Javascript,Jquery,我使用jQuery.get()()发出一个简单的请求,并承诺传递两个参数(id,errors),因此当我使用回调处理拒绝时,它看起来像是错误消失,当我使用console.log(errors)时,它显示未定义 我试图做的是向(people部分)发出请求,因此如果我遇到2个或更多错误,我将中断递归并在控制台中向消息显示,但是如果只有一个错误,则应该继续使用下一个字符 我想我传递的参数是正确的,有人能解释一下我错在哪里吗 这是我的密码: const URL_API = 'https://swapi.
jQuery.get()
()发出一个简单的请求,并承诺传递两个参数(id,errors),因此当我使用回调处理拒绝
时,它看起来像是错误消失,当我使用console.log(errors)
时,它显示未定义
我试图做的是向(people部分)发出请求,因此如果我遇到2个或更多错误,我将中断递归并在控制台中向消息显示,但是如果只有一个错误,则应该继续使用下一个字符
我想我传递的参数是正确的,有人能解释一下我错在哪里吗
这是我的密码:
const URL_API = 'https://swapi.co/api'
const PEOPLE_URL_API = '/people/'
const CHARACTERS = `${URL_API}${PEOPLE_URL_API}`
const options = { crossDomain: true }
let i = 0
let errors = 0
function getCharacterName(id, errors) {
return new Promise((resolve, reject) => {
$
.get(`${CHARACTERS}${id}`, options, (data) => {
resolve(data)
})
.fail(() => reject(id, errors))
})
}
// CallBack that will handle a possible error
const onError = (id, errors) => {
console.log(id, errors)
errors++
if (errors < 3) {
console.log(`We coudn't find the character ${id}`)
recursive(i, errors)
} else {
console.log(`Too much errors, we can't continue`)
console.log(errors)
}
}
function recursive(i, errors) {
i += 1
getCharacterName(i, errors)
.then((data) => {
console.log(
`I'm the character ${data.url
.substring(28)
.replace('/', '')}, my name is: ${data.name}`
)
console.log(i, errors)
return recursive(i, errors)
})
.catch(onError)
}
recursive(i, errors)
reject
只有一个参数。你是对的,我更改了它,一切都像一个符咒。reject
只有一个参数。你是对的,我更改了它,一切都像一个符咒。
...
I'm the character 16, my name is: Jabba Desilijic Tiure
16 0
swapi.co/api/people/17/?crossDomain=true:1 GET https://swapi.co/api/people/17/?crossDomain=true 404
17 undefined
Too much errors, we can't continue