您现在的位置是:主页 > news > 哪个网站做货车专业/天津seo优化公司哪家好

哪个网站做货车专业/天津seo优化公司哪家好

admin2025/5/30 5:12:03news

简介哪个网站做货车专业,天津seo优化公司哪家好,做新得网站可以换到原来得域名嘛,网站设计模板代码Promise是一个对象,可以获取异步操作的信息,可以避免多次异步调用嵌套问题,同时Promise提供了简洁的API,使得控制异步操作更加方便 问题举例: 以下连续调用三个接口请求,由于异步的关系,最终显…

哪个网站做货车专业,天津seo优化公司哪家好,做新得网站可以换到原来得域名嘛,网站设计模板代码Promise是一个对象,可以获取异步操作的信息,可以避免多次异步调用嵌套问题,同时Promise提供了简洁的API,使得控制异步操作更加方便 问题举例: 以下连续调用三个接口请求,由于异步的关系,最终显…

Promise是一个对象,可以获取异步操作的信息,可以避免多次异步调用嵌套问题,同时Promise提供了简洁的API,使得控制异步操作更加方便

问题举例:

以下连续调用三个接口请求,由于异步的关系,最终显示的结果不是按顺序的
    $.ajax({url: "http://localhost:3000/promise_test1",success: function(result) {console.log(result);},error: function(error) {console.log(error);reject(error)}});$.ajax({url: "http://localhost:3000/promise_test2",success: function(result) {console.log(result);},error: function(error) {console.log(error);}});$.ajax({url: "http://localhost:3000/promise_test3",success: function(result) {console.log(result);},error     : function(error) {console.log(error);}});

输出结果
在这里插入图片描述

当然我们会想到逻辑回调嵌套,但是多个接口嵌套,太过累赘,可读性差(回调地狱)

如下所示

    $.ajax({url: "http://localhost:3000/promise_test1",success: function(result) {console.log(result);$.ajax({url: "http://localhost:3000/promise_test2",success: function(result) {console.log(result);$.ajax({url: "http://localhost:3000/promise_test3",success: function(result) {console.log(result);},error: function(error) {console.log(error);}});},error: function(error) {console.log(error);}});},error: function(error) {console.log(error);reject(error)}});

在这里插入图片描述

Promise可以解决以上的回调地狱问题的出现;

promise里面放置一个函数,两个参数,一个resolve一个reject.resolve返回执行成功回调,reject失败回调。
    var p = new Promise((resolve, reject) => {resolve(res) //回调成功执行reject(error) //回调失败执行})

举例:

    function p() {var p = new Promise((resolve, reject) => {$.ajax({url: "http://localhost:3000/promise_test1",success: function(result) {console.log(result);resolve(result)},error: function(error) {console.log(error);reject(error)}});})return p;}

上面的例子可以改写为:

    function p(url) {var p = new Promise((resolve, reject) => {$.ajax({url: url,success: function(result) {resolve(result)},error: function(error) {reject(error)}});})return p;}p("http://localhost:3000/promise_test1").then(function(data) {// 执行resolveconsole.log(data);},function(error) {// 执行rejectconsole.log(error);})

结果
在这里插入图片描述
多个异步请求时:

    function p(url) {var p = new Promise((resolve, reject) => {$.ajax({url: url,success: function(result) {resolve(result)},error: function(error) {reject(error)}});})return p;}p("http://localhost:3000/promise_test1").then(function(data) {// 执行resolveconsole.log(data);// 必须返回一个Promise实例return p("http://localhost:3000/promise_test2");},)//此处.then获取promise_test2接口的resolve回调.then(function(data) {console.log(data);return p("http://localhost:3000/promise_test3");})//此处.then获取promise_test3接口的resolve回调.then(function(data) {console.log(data);})

结果如下所示
在这里插入图片描述
常用Promise API汇总

Promice.then()  //获取异步结果,l参数为两个函数回调,
Promise.catch() //获取异常信息 参数为一个回调函数 相当于then中的第二个函数
Promise.finally() //成功与否都会执行