Espero devolver el resultado en la promesa.
Prueba 1
function fun() {
return new Promise((resolve, reject) => {
resolve('模拟axios')
})
}
function test() {
return fun().then(res => {
console.log('1,',res)
return 1
}).then(res => {
console.log('2,',res)
return 2
}).then(res => {
console.log('3,',res)
return 3
}).catch(err=>{
console.log('#err',err)
})
}
Ejecute el método de prueba y devuelva un valor en cada paso. Obviamente, los parámetros recibidos son los resultados del paso anterior.
Obtenga los resultados de la operación del método.
let result = test()
El resultado finalmente se lanza, y se debe realizar un paso después del resultado.
result.then(r=>{
console.log("r",r)})
Obtener resultado arrojado
Prueba 2
function p1() {
return new Promise((resolve, reject) => {
resolve('p1')
})
}
function p2() {
return new Promise((resolve, reject) => {
resolve('p2')
})
}
function run() {
return p1().then(d => {
console.log('1,',d)
return 1
}).then(d => {
console.log('2,',d)
return p2().then(d => {
console.log('#t,',d)
throw(9)
})
}).then(d => {
console.log('3,',d)
}).catch(err=>{
console.log('#err',err)
})
}
ejecutar resultados
ejecutar para detectar arroja una excepción
let r = run()
No hay devolución y el resultado de la promesa de r no está definido.
Prueba 3
Desactive la excepción en la prueba 2
function p1() {
return new Promise((resolve, reject) => {
resolve('p1')
})
}
function p2() {
return new Promise((resolve, reject) => {
resolve('p2')
})
}
function run() {
return p1().then(d => {
console.log('1,',d)
return 1
}).then(d => {
console.log('2,',d)
return p2().then(d => {
console.log('#t,',d)
return d
})
}).then(d => {
console.log('3,',d)
return '最后一步中必须有return'
}).catch(err=>{
console.log('#err',err)
})
}
resultado de la operación