反应状态变量的Javascript承诺返回变量
我使用的是请求npm包,它只是一个包装在HTTP调用中的承诺。我在过去的承诺中遇到过问题。如何获得返回值的承诺,以便在react中使用它,或获得在该承诺内设置react状态变量的承诺?我需要API调用中的特定数字来设置react状态变量 对于这样的代码反应状态变量的Javascript承诺返回变量,javascript,reactjs,Javascript,Reactjs,我使用的是请求npm包,它只是一个包装在HTTP调用中的承诺。我在过去的承诺中遇到过问题。如何获得返回值的承诺,以便在react中使用它,或获得在该承诺内设置react状态变量的承诺?我需要API调用中的特定数字来设置react状态变量 对于这样的代码 request(options, function (error, response, body) { if (error) throw new Error(error); console.log(Number(J
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(Number(JSON.stringify(body).split(",")[2].split(":")[1]);
});
及
我过去常常得到回报。然后使用和使用整齐放置的返回语句来实现一个可靠的闭包
Massfunc = async () => {
var that = this;
var promise = rp(options).then(function (body) {
let returnedValue = Number(JSON.stringify(body).split(",")[2].split(":")[1]);
that.setState({num: returnedValue});
return returnedValue;
}).catch(function (err) {
console.log(err);
});
return promise;
}
您的第二个代码段应该设置为state。但是为什么要在JSON字符串上使用
.split(“,”[2].split(“:”[1]
,为什么不直接从javascript对象获取值呢?例如,如果对象是{key1:3,key2:4,key3:1}
您只需执行{numberfoHeadBlock:body.key3}
即可,它在当前上下文中返回一个未定义的值。
Massfunc = async () => {
var that = this;
var promise = rp(options).then(function (body) {
let returnedValue = Number(JSON.stringify(body).split(",")[2].split(":")[1]);
that.setState({num: returnedValue});
return returnedValue;
}).catch(function (err) {
console.log(err);
});
return promise;
}