javascript - 开玩笑的承诺返回未定义
问题描述
我的代码:
this.apiStore.fetchOrder(id).then(() => {
alert("Success");
// TODO - ui updates
})
开玩笑测试:
describe("order", () => {
it("fetches the order", () => {
const fetchOrder = jest.fn();
const id = 100;
expect(fetchOrder).toHaveBeenCalledWith(id);
});
});
但我收到以下错误:
无法读取未定义的属性“then”
关于如何解决这个问题的任何想法?
编辑1:
Fetchorder api调用定义如下
fetchOrder = (orderId) => {
return this.fetch(
`/api/order.json`,
{
method: "POST",
body: {
id: orderId
},
}
);
};
现在我将响应返回为
{"status":"ok"}
如果我删除.then() => {..}
然后测试运行良好。有任何想法吗?
编辑2:后端代码如下
def fetch_order
render json: { status: :ok }
end
解决方案
fetchOrder 函数不返回 Promise 实例,您应该检查它的实现或共享它。
推荐阅读
- matlab - 在二维 MATLAB 数据数组中创建一个圆
- vue.js - Vuetify - 某些 Vuetify 组件的“接收未知自定义元素”错误,但不是全部
- python - 给定根构造树
- php - 如何从 Select2 Minimal 传递选定的数据?
- html - 上传到域时导航栏的位置发生变化
- python - 如何使用 Paramiko 执行“ssh -Y user@host cmd”?在远程打开 GUI
- java - Bundle中的getParcelable有时会在java android中导致BadParcelableException
- graphql - 你如何在 GraphQL 中处理多个类型的数组(例如:不同的内容块)?
- c - 为什么访问单个 SIMD 元素这么慢
- java - JFrame框架调用JPanelpaintComponent