javascript - 直接调用方法可以,但是用策略模式调用就不行
问题描述
当 Sequelize init instance 我有 'getBlocks' 和 'getSkills' 方法,所以我需要采用一种策略模式来知道我必须调用什么方法
const resourceTypes = instance => ({
Block: instance.getBlocks,
Skill: instance.getSkills
});
return resourceTypes(this)[this.dataValues.type]();
但是这个电话返回给我这个投掷
TypeError: instance.get is not a function
at BelongsToMany.get (/home/fparol4/Desktop/work/repositories/assessment-api/node_modules/sequelize/lib/associations/belongs-to-many.js:434:48)
at Object.obj.<computed> [as Block] (/home/fparol4/Desktop/work/repositories/assessment-api/node_modules/sequelize/lib/associations/helpers.js:64:39)
at Question.findResource (/home/fparol4/Desktop/work/repositories/assessment-api/src/api/v1/models/Question.js:29:51)
at QuestionService.findByPk (/home/fparol4/Desktop/work/repositories/assessment-api/src/api/v1/services/QuestionService.js:183:35)
at async show (/home/fparol4/Desktop/work/repositories/assessment-api/src/api/v1/controllers/QuestionController.js:100:22)
直接调用方法,例如:
返回 this.getBlocks()
没有投掷
解决方案
推荐阅读
- regex - 小写除一些使用 Nginix 的所有 url
- yii - 如何在查询中使用两个条件?
- python - Pyspark中的条件如何动态链接?
- python - 使用“a = x if cond else b = y”“无法分配给条件表达式”
- mongodb - 用猫鼬保存对象数组
- java - 使用 FlexibleSearchService Hybris 在数据库表中搜索
- databricks - 如何重命名增量表中的列
- reactjs - 在严格模式下反应组件的双重渲染 - 我是否正确使用状态?
- node.js - Discord API:如何获取邀请码?
- xamarin - 货币 Xamarin iOS 中的小数位错误