javascript - promise的用法
本文介绍了javascript - promise的用法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
疑惑1:
程序大部分的调用链是这样的:
promise.then(A).then(B).then(C).then(D)
但是B满足某种条件,需要这样调用:
promise.then(A).then(B).then(C1).then(C2).then(D)
这种情况该怎么做?
新的说明:
这个条件并不是在外围可以确定的
例如:
// 并不可以这么做。state必须在B函数执行完之后才能确定
if(state){
promise.then(A).then(B).then(C1).then(C2).then(D)
}else{
promise.then(A).then(B).then(C).then(D)
}
疑惑2:
如何在循环中使用promise?
解决方案
疑惑1
修正:
promise
.then(A)
.then(B)
.then(function(state){
if(state){
return C1.then(C2);
}
return C;
})
.then(D);
好像也不算帅,期待更屌的实现
疑惑2
如果发生在循环里,譬如:对一个数组进行遍历,对每一元素处理的结果都是一个Promise
,可以这样写:
var userIds = ['aaa', 'bbb', 'ccc'];
//这里getUserById返回的是Promise
var promises = arr.map(userIds => getUserById(userId));
Promise
.all(promises)
.then(function(users) {
console.log(users); //这里就是users的列表了
});
这篇关于javascript - promise的用法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文