Promise 中的 Javascript 范围

标签 javascript scope

如何在 Promise 回调中访问用户对象?

我尝试绑定(bind)它但没有成功。

const promises = User.find(req.user._id).exec();
promises.then(function (user) {
  noAccessFunction().then(function (customer) {
    // HERE
    user.save();
  });
});

最佳答案

Promise 不是回调!改变它,就好像它是一个值(value)链一样。也许是这样的:

const promises = User.find(req.user._id).exec();
promises.then(function (user) {
  return myfunction().then(function (customer) {
    return user.save();
  });
});

promise 也可以扁平化:

const promises = User.find(req.user._id).exec();
promises.then(function (user) {
  return myfunction(user);
})
.then(function (customer) {
  return customer.save();
});

无论如何,上面的代码都是猜测,因为您没有提供足够的信息来说明您想要发生的情况。

关于Promise 中的 Javascript 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34906610/

相关文章:

javascript - 使用 jquery find 在 Angular Directive(指令)中获取 dom 元素

javascript - 更优雅的按钮将数据提交到脚本

C++ 文件作用域静态函数

java - 匿名变量(?)的优点?

javascript - 如何在不安装 npm 的情况下包含第 3 方 npm 模块?

javascript - 如何使用 Bluebird Promises 延迟迭代元素?

javascript - Appcelerator Titanium(错误 - 应用程序安装程序异常进程终止。进程退出值为 1)

python - 赋值前引用的局部变量

c++ - 如何创建具有相同默认构造函数但具有不同值的派生类?

javascript - 将 Controller 与 Angular Scope 对象显式关联