redux-saga-beginner-tutorial icon indicating copy to clipboard operation
redux-saga-beginner-tutorial copied to clipboard

执行npm run test时报错:Error: call: argument fn is undefined or null

Open zl-fire opened this issue 5 years ago • 1 comments

执行npm run test时报错:Error: call: argument fn is undefined or null

image

如下修改代码就正常了

image

import test from 'tape';

// import { delay } from 'redux-saga'
import { put, call , delay} from 'redux-saga/effects'
import { incrementAsync } from './sagas'

test('incrementAsync Saga test', (t) => {
  const generator = incrementAsync()

  t.deepEqual(
    generator.next().value,
    // call(delay, 1000),
    delay(1000),
    'counter Saga must call delay(1000)'
  )

  t.deepEqual(
    generator.next().value,
    put({type: 'INCREMENT'}),
    'counter Saga must dispatch an INCREMENT action'
  )

  t.deepEqual(
    generator.next(),
    { done: true, value: undefined },
    'counter Saga must be done'
  )

  t.end()
});

zl-fire avatar Apr 04 '20 06:04 zl-fire

You shouldn't need to import delay from redux-saga/effects. Instead, make sure you are adding the export keyword before the "delay" defined in the sagas.js file. eg

export const delay = (ms = 1000) => new Promise((res) => setTimeout(res, ms));

jagretz avatar Apr 10 '20 16:04 jagretz