【发布时间】:2020-06-16 09:00:22
【问题描述】:
我遇到了需要将一些值传递给 Promise 处理程序的情况。以下是情况示例
function promiseFunct(x){
return new Promise(function(resolve, reject){
if(x>0) resolve(x);
else if(x==0) resolve(1);
else resolve(0);
});
}
promiseFunct(-100).then(function(response){
var someObj = { len: 124 };
return promiseFunct(response).bind(someObj);
}).then(function(response){
if(this.len) console.log(this.len); //not getting access here, this is Window
});
我正在尝试绑定 someObj,然后在处理程序中访问它,但没有成功。是否有一些优雅的解决方案可以将一些对象传递给 Promise 处理程序,除了传递给 Promise 然后在 Promise 中解析?
【问题讨论】:
-
绑定
someObj到function(response){ if(this.len) console.log(this.len);} -
@ChrisLi, someObj 没有在这个范围内定义
-
someObj来自哪里?为什么不在第二个回调中定义呢? -
@Bergi,如果我能做到,我会做到的。让我们假设 someObj 是一些硬计算的结果。
-
@VladislavVazhenin 为什么需要将这些硬计算放在这个范围内?请提供一个使依赖关系清晰的示例。
标签: javascript promise bluebird