有很多关于如何从承诺中回报价值的问题,但我没有看到任何回答我的问题。
这是我的功能:
function f1(arr, num) {
return new Promise(function(resolve, reject) {
resolve(data);
}).then(function(data){
f2.then(function(d){
// how to return d
}).catch(...);
function f2(data){
return new Promise(function(resolve, reject){
data = data + 1
resolve (data);
});
};
})
.catch(function(){...});
}
如何在此配置中返回d
?
答案 0 :(得分:2)
我认为你在寻找
function f1(arr, num) {
return new Promise(function(resolve, reject) {
resolve(data);
}).then(function(data){
return f2(data).then(function(d){
// ^^^^^^ don't forget this
// ^^^^^^ call the function
return d;
// ^^^^^^^^^ simply and literally return d
}).catch(...);
function f2(data){
return new Promise(function(resolve, reject){
data = data + 1
resolve (data);
});
};
})
.catch(function(){...});
}
或写得更好
function f1(arr, num) {
return Promise.resolve(data)
.then(f2)
.catch(function(){...});
}
function f2(data){
return new Promise(function(resolve, reject){
… // do some async work
resolve(data + 1);
});
}