我想要做的基本上是
function test() {
getSomeValue().then(function (data) {
//process data
});
}
function getSomeValue() {
//do some long process
return new Promise(function (resolve, reject) {
resolve(result);
});
}
function getSomeOtherValue() {
//do some long process
return new Promise(function (resolve, reject) {
resolve(result);
});
}
函数测试调用一个返回promise的函数,然后对返回的数据执行一些计算。这部分工作正常。现在,函数getSomeValue
需要调用另一个也返回promise的函数。如何从getSomeValue
返回也等待getSomeOtherValue
完成的承诺。
如果需要任何其他信息,请告诉我。
答案 0 :(得分:2)
在getSomeValue之前从getSomeOtherValue获取值,只需先调用getSomeOtherValue函数,然后用另一个函数链接来处理getSomeValue的值,最后,将结果返回给调用者(测试函数)
function getSomeValue() {
//do some long process
return getSomeOtherValue().then(function(resultFromSomeOtherValue) {
return new Promise(function (resolve, reject) {
var result = true; //some value after process;
return resolve(result);
});
});
}
答案 1 :(得分:1)
您可以在.underbar {
bottom:0;
width:100%;
height:60px;
padding:0px;
margin:0px;
background:#000000;
position:fixed;
}
内链接<footer class="underbar">
</footer>
:
getSomeOtherValue
如果您想要切换订单,那么:
getSomeValue
但是,这仅用于说明。您可以设计承诺,以便在更高层次上有效地链接它们:
function getSomeValue() {
//do some long process
return new Promise(function (resolve, reject) {
resolve(result);
}).then(getSomeOtherValue);
}
答案 2 :(得分:1)
要等待getSomeOtherValue
函数解析,您需要从getSomeValue
函数中解析返回的promise中的getSomeOtherValue
函数的承诺。希望下面的代码有意义
function test() {
getSomeValue().then(function (data) {
//process data
});
}
function getSomeValue() {
//do some long process
return new Promise(function (resolve, reject) {
getSomeOtherValue().then(function (data) {
resolve(result);
});
});
}
function getSomeOtherValue() {
//do some long process
return new Promise(function (resolve, reject) {
resolve(result);
});
}