promesa, resolución de devolución

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.
resultado de la ejecución de prueba
Obtenga los resultados de la operación del método.

let result = test()

resultado
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
Inserte la descripción de la imagen aquí

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 resultado
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.
no más entonces
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
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_39308542/article/details/109313214
Recomendado
Clasificación