码迷,mamicode.com
首页 > 其他好文 > 详细

promise用法详解

时间:2017-10-22 00:08:17      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:速度   失败   回调   mis   读取   slide   不同的   let   items   

es6的promise可谓是异步书写的一大福音,过去异步js书写是函数嵌套函数的方式,promise出现后书写异步js代码就变得美观得多了

以前的写法:回调函数不停嵌套

ajax(‘/banners‘, function (banner_data){
  ajax(‘/hotItems‘, function (hotitem_data){
    ajax(‘/slides‘, function (slide_data){
      ajax(‘/slides‘, function (slide_data){

      }, function (){
        alert(‘读取失败‘);
      });
    }, function (){
      alert(‘读取失败‘);
    });
  }, function (){
    alert(‘读取失败‘);
  });
}, function (){
  alert(‘读取失败‘);
});

Promise写法:

Promise.all([promise1,promise2..]).then(res=>{},err=>{})

这个方法是等数组所有异步请求都返回结果才执行then,都成功执行第一个回调函数,其中一个失败了就执行第二个回调函数

Promise.all([
      promise1,
      promise2
    ]).then(function (results){
      let [data1, data2]=results;
      alert(‘成功了‘);
      console.log(arr, json);
    }, function (err){
      alert(‘失败了‘);
    });

Promise.race([promise1,promise2..]).then(res=>{},err=>{})

这个方法跟之前的all用法一样,不同的是数组里面的任意一个异步请求先返回了结果就马上执行第一个回调函数,常用语请求不同服务器的同一样资源,以求达到最快响应速度。

promise用法详解

标签:速度   失败   回调   mis   读取   slide   不同的   let   items   

原文地址:http://www.cnblogs.com/amiezhang/p/7707309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!