위챗 애플릿에서 처음으로 프로미스 봉인 요청을 사용하고 비동기 문제를 해결합니다

1. canvas 포스터를 가장 많이 만들고 있습니다. 고객은 코드를 스캔하고 오픈id를 얻을 수 있습니다. 왜냐하면Access를 먼저 획득해야 하기 때문입니다token, Access를 통해QR코드를 받은 다음에 바인딩된 base64를 2진법으로 바꾸어 임시 그림을 만들고 있습니다. 그 중에서 비동기적인 문제가 많기 때문에 프로미스로 해결하는 것을 고려했습니다. 코드가 좀 번거롭다고 느꼈습니다. 프로미스에 대해 자주 사용하지 않았기 때문에 어른들의 지적을 환영합니다.
위 코드는 우선 요청을 봉인합니다. 전송 가능한 매개 변수는 url이고, 백엔드에 전송할 수 있는 매개 변수 데이터도 있습니다.
    fetch: function (url, data) {
        var promise = new Promise((resolve, reject) => {
          //init
          var that = this;
          var postData = data;
          //    
          wx.request({
            url: url,
            data: postData,
            method: 'POST',
            header: { 'content-type': 'application/x-www-form-urlencoded' },
            success: function (res) {  //       
              resolve(res.data)
            },
            error: function (e) {
              reject('    ');
            }
          })
        });
        return promise;
      },

페이지 호출 app.js의 봉인 함수 var app = getApp();//지금js 파일에 app를 도입합니다.js
 
  app.fetch(Access_token_url, Access_token_data).then((res) => { 
     		console.log(res)
     	//	             then         ,      
     		 app.fetch(getcodeUrl, data).then((res) => {	
     		 //   then               
     		 	console.log(res)
     		 	var base64data = res
         //    base64Data
         //       
         const filePath = `${wx.env.USER_DATA_PATH}/temp_image.png`;
         //  base64       
         const buffer = wx.base64ToArrayBuffer(base64data);
         //      
         wx.getFileSystemManager().writeFile({
           filePath,
           data: buffer,
           encoding: 'binary',
           success() {
             wx.setStorageSync('qrcode', filePath);
             console.log(filePath)//   filePath  canvas      
           },
           fail() {
           }
         });
 	 }})


프로미스터의 then 방법에 익숙하지 않은 것 같아서 이보를 해결하기 위해 어리석습니다. 어른들의 지적을 환영합니다.

좋은 웹페이지 즐겨찾기