Dva: O setTimeout pode ser usado em efeitos de modelo?

Criado em 2 ago. 2017  ·  3Comentários  ·  Fonte: dvajs/dva

código mostrado abaixo

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

Depois de adicionar setTimeout, ele sempre reporta Uncaught SyntaxError: Identificador inesperado. Ficará bem depois de removê-lo. Não sei por quê. Não é possível usar setTimeout aqui?

question

Comentários muito úteis

Experimente:

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

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

Todos 3 comentários

Experimente:

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

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

@sorrycc Descobri que usar yeild put em setTimeout não funcionará. O Uncaught SyntaxError: Identificador inesperado que comecei a relatar é causado pelo valor de retorno após a execução de yeild put. Se eu quiser iniciar uma ação, essa ação primeiro altera o estado .Valor, o que devo fazer se um determinado valor de estado for alterado após alguns segundos? Preciso alterar um determinado valor de estado para controlar a visibilidade de um elemento. Como há tantos lugares para usar, preciso escrever todas as ações em uma ação. Meu próprio entendimento dessa ação precisa ser escrito em efeitos, porque está aqui. Apenas call e put podem ser usados ​​internamente, e posso colocar dois redutores e alterar o estado duas vezes, mas o uso de yeild não parece ser controlado por setTimeout. Como posso cronometrar uma ação para ser disparada em um determinado time (originalmente, setTimeout pode ser escrito fora do despacho Para conseguir isso, mas se o projeto for alterado desta forma, centenas de lugares podem ter que ser alterados, e não será possível alterar)

Você pode dedicar algum tempo para entender a diferença entre o gerador e a função comum. A função genérica não pode ser definida no gerador.

Esta página foi útil?
0 / 5 - 0 avaliações