我们如何在JavaScript的上下文承诺的then块中访问输入值?请参见下面的代码段。 processInServer()可能被调用多次。
function processInServer(someData){
return getPromise(someData).then(function(data) {
return {"input": someData, "output": data};
});
}
var a1 = processInServer(someData1);
var a2 = processInServer(someData2);
最佳答案
您可以将getPromise
调整为返回对象的构造函数。将someData
,Promise
设置为返回对象的属性。这样,someData
应该可以在对象引用以及Promise
对象处访问。使用链接到对象上的承诺集的.then()
来查看承诺值和输入值。
function getPromise(someData) {
this.someData = someData;
this.promise = Promise.resolve(someData * Math.random() * Math.PI);
}
var gp = new getPromise(123);
var result = gp.promise.then(function(data) {
return {
"input": gp.someData,
"output": data
};
});
result.then(function(result) {
console.log(`result:${JSON.stringify(result, null, 2)}`,
`gp:${JSON.stringify(gp, null, 2)}`)
});
关于javascript - 我们如何在JavaScript的上下文 promise 的then块中访问输入值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39460963/