Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果指定了多个类型和有效负载选项,为什么Redux承诺返回未解析的承诺?_Javascript_Asynchronous_Reactjs_Redux_Redux Promise - Fatal编程技术网

Javascript 如果指定了多个类型和有效负载选项,为什么Redux承诺返回未解析的承诺?

Javascript 如果指定了多个类型和有效负载选项,为什么Redux承诺返回未解析的承诺?,javascript,asynchronous,reactjs,redux,redux-promise,Javascript,Asynchronous,Reactjs,Redux,Redux Promise,我很难弄清楚为什么会发生这种情况,但本质上,Redux Promise在返回类似以下内容时对我来说效果很好: return { type: STORY_ACTIONS.STORY_SPOTIFY_REQUEST, payload: request } 但是,我现在需要像这样传递另一个信息 return { order: 0, // New field type: STORY_ACTIONS.STORY_SPOTIFY_REQU

我很难弄清楚为什么会发生这种情况,但本质上,Redux Promise在返回类似以下内容时对我来说效果很好:

    return {
      type: STORY_ACTIONS.STORY_SPOTIFY_REQUEST,
      payload: request
    }
但是,我现在需要像这样传递另一个信息

    return {
     order: 0, // New field
     type: STORY_ACTIONS.STORY_SPOTIFY_REQUEST,
     payload: request
    }

这将导致未解决的承诺,而不是数据。我尝试将
order
重命名为类似
position
index
。。。仍然没有。

您应该使用Redux Promise所需的
meta
字段。Redux Promise使用Flux标准操作(FSA),它验证操作:


如您所见,有效密钥只有四个保留字。因此,您应该将order属性添加到“payload”或“meta”中。

meta:{order:index}
中传递我需要的所有内容,谢谢
import isPlainObject from 'lodash.isplainobject';

const validKeys = [
  'type',
  'payload',
  'error',
  'meta'
];

function isValidKey(key) {
  return validKeys.indexOf(key) > -1;
}

export function isFSA(action) {
  return (
    isPlainObject(action) &&
    typeof action.type !== 'undefined' &&
    Object.keys(action).every(isValidKey)
  );
}

export function isError(action) {
  return action.error === true;
}