javascript - 如何在 promise 数组中引用对象值?

标签 javascript arrays object promise

下面的对象包含查找键,其中包含 promise 数组,用于针对值<运行一系列验证.

如何从 email 访问 full_name 的值?

const config = {
  full_name: [
    val => new Promise((resolve, reject) => resolve(val)),
    val => new Promise((resolve, reject) => resolve(val))
  ],
  email: [
    val => new Promise((resolve, reject) => resolve(val)),
    val => new Promise((resolve, reject) => reject(`${config.full_name.val}`)) // get the value which has been passed to full_name
  ]
}

最佳答案

config.full_name.val 不存在,因为 config.full_name 是一个包含返回 promise 的函数的数组。

此处的用例取决于调用这些函数的上下文。此上下文在此处解释:https://jsfiddle.net/karlbateman/keqnrybq/ .

还考虑到验证部分位于与实际配置不同的模块中,因此不能简单地访问回调中的 formData。

但是,您可以将上下文参数添加到提供要访问的 formData 的函数回调中,如下所示:https://jsfiddle.net/odolha/tpn75570/

查看这一行(在 validatorFn 中):

arr.push(config[field].map(cb => cb(formData[field], formData)))

这基本上提供了 formData 作为上下文参数,可以在以后使用:

(val, ctx) => new Promise((resolve, reject) => setTimeout(() => {
  reject(`${ctx.name} already is exists.`) // simulate a HTTP request
}, 2000))

关于javascript - 如何在 promise 数组中引用对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41258349/

相关文章:

javascript - 我可以在 CKEDITOR 的粘贴事件中使用多少剪贴板 API?

javascript - 正则表达式删除空格和换行符

javascript - Function 和 Function.prototype 的区别

python - 在 numpy 中添加二维数组时出现问题

Javascript 隐藏输入数组

java - Java 应用程序的数据库

javascript - 为什么警报返回 'undefined' 变量值?

python - 计算多个并行数组的最优雅/高效/Pythonic 方法?

python - 在 C++ 中调用 Python

javascript - 如何在javascript中将元素嵌套子元素转换为多维关联数组?