Maison  >  Article  >  Applet WeChat  >  Utilisation combinée de wx.request et de l'applet Promise of WeChat

Utilisation combinée de wx.request et de l'applet Promise of WeChat

php中世界最好的语言
php中世界最好的语言original
2018-03-19 16:28:283556parcourir

Cette fois, je vais vous présenter l'utilisation combinée de wx.request et de l'applet Promise of WeChat. Quelles sont les précautions pour l'utilisation combinée de wx.request et Promise of WeChat. cas pratiques.

Lorsque j'utilise Promise, mes multiples codes asynchrones ressemblent généralement à ceci

ajax(url, function (res){
    ajax(res.url, function(res) {
        ajax(res.url, function(res) {            if (res.status == '1') {
                ajax(res.url, function(res) {
                ...
                }
            }            else if (res.status == '2') {
                ajax(url2, function(res) {
                ...
            }
            ...
        }
    }
}
);

Ce type de processus est très laborieux et fragile, et l'expérience est donc très mauvaise. time Afin d'avoir une meilleure expérience dans le développement de petits programmes, j'ai commencé à utiliser Promise

Le code est le suivant, lorsque notre deuxième requête nécessite le premier jugement de paramètre, nous ne pouvons pas. ne tombez plus dans l'enfer du rappel.,

// 小程序与后端情求接口
    let baseUrlPromise = 'https://xxx.com';    // 定义方法返回Promise参数,obj 为wx.request 方法中所需参数
    let req = function (obj) {      return new Promise(function (resolve, reject) {
        wx.request({
          url: baseUrlPromise + obj.url,
          data: obj.data,
          header: obj.header,
          method: obj.method == undefined ? "get" : obj.method,
          success: function (data) {            // 回调成功执行resolve            resolve(data)
          },
          fail: function (data) {            // 回调失败时
            if (typeof reject == 'function') {
              reject(data);
            } else {
              console.log(data);
            }
          },
        })
      })
    }    // 执行req 方法,传入第一个请求,
    let req1 = req({
      url: '第一次请求链接,与baseUrlPromise 相结合',
      data: {},
    })    // 当需要多次请求时加入
    req1.then(function (data) {
      console.log('promiseThen1')
      console.log(data);      return req({
        url: '第二次请求链接',
      })
    }).then(function (data) {
      console.log('promiseThen3')
      console.log(data);      return req({
        url:'第三次请求链接'
      })
   }).then(......).catch(function(data){
      console.log(PromiseCatch)
   })

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

L'utilisation des instructions Vue

L'utilisation des fermetures JS

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn