首页 > JavaScript中promise嵌套问题如何解决?

JavaScript中promise嵌套问题如何解决?

比如:

var p1 = new Promise(function() {});
var p2 = new Promise(function() {});
var p3 = new Promise(function() {});
// var p4...

p1.then(function(p1_data) {
    p2.then(function(p2_data) {
        // do something with p1_data
        p3.then(fuction(p3_data) {
        // do something with p2_data
            // p4...
        });
    });
});

这样的情况怎样解决啊?


如果用JQuery,可以用promise的when方法:

$.when(p1,p2,p3).done(function(p1_data, p2_data, p3_data){
    // handle...
});

参考:https://api.jquery.com/jquery.when/


这是要多个异步 做同步处理, 一楼不能把多个结果进行交互处理, 正确的写发可以参考 Promise.all(Array).Promise.all


promise链式调用哦

var p1 = new Promise(function() {});
var p2 = new Promise(function() {});
var p3 = new Promise(function() {});
// var p4...

p1.then(function(p1_data) {
  return p2;
}).then(function(p2_data){
  return p3;
}).then(function(p3_data){
  return p4;
}).then(function(p4_data){
  //final result
}).catch(function(error){
    //同一处理错误信息
});

用when, http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

【热门文章】
【热门文章】