Dva: ¿Se puede usar setTimeout en efectos de modelo?

Creado en 2 ago. 2017  ·  3Comentarios  ·  Fuente: dvajs/dva

el código se muestra a continuación

*aaa({
          payload
      },{call,put}){
        yield put({
            type: 'xxx',
            payload: {...payload}
        });
        setTimeout(
            yield put({
                type: 'xxxx',
            })
        ,1000)
      },

Después de agregar setTimeout, siempre informa un error de sintaxis no detectado: identificador inesperado. Estará bien después de eliminarlo. No sé por qué. ¿No es posible usar setTimeout aquí?

question

Comentario más útil

Tratar:

const delay = (ms) => new Promise((resolve) => {
  setTimeout(resolve, ms);
});

*aaa() {
  yield call(delay, 1000);
  yield put...
}

Todos 3 comentarios

Tratar:

const delay = (ms) => new Promise((resolve) => {
  setTimeout(resolve, ms);
});

*aaa() {
  yield call(delay, 1000);
  yield put...
}

@sorrycc Descubrí que usar yeild put en setTimeout no funcionará. El error de sintaxis no detectado: el identificador inesperado que comencé a informar es causado por el valor de retorno después de ejecutar yeild put. Si quiero iniciar una acción, esta acción primero cambia el estado Valor, ¿qué debo hacer si un cierto valor de estado se cambia después de unos segundos? Necesito cambiar un cierto valor de estado para controlar la visibilidad de un elemento. Debido a que hay tantos lugares para usar, necesito escribir todas las acciones en una acción. Mi propia comprensión de esta acción debe escribirse en efectos, porque está aquí. Solo se pueden usar call y put adentro, y puedo poner dos reductores y cambiar el estado dos veces, pero el uso de yeild no parece estar controlado por setTimeout. ¿Cómo puedo programar una acción para que se active en un tiempo especificado? time (originalmente, setTimeout se puede escribir fuera del despacho para lograr esto, pero si el proyecto se va a cambiar de esta manera, es posible que deban cambiarse cientos de lugares y no será posible cambiarlo)

Puede tomarse el tiempo para comprender la diferencia entre el generador y la función ordinaria. La función genérica no se puede configurar en el generador.

¿Fue útil esta página
0 / 5 - 0 calificaciones