VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
最新

解决小程序中代码同步执行问题(同步小程序与异步小程序的区别)

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

编写小程序时经常出现两个同步问题:

1. 使用 for 循环时,一个循环中的操作不会在下一个循环开始之前完成。 。 如果循环之间没有相互依赖关系,这并不是什么大问题,但如果下一个循环的开始依赖于上一个循环的结果,那么一系列的操作,比如绘图,就会出现问题。

for (let Index in Images) { //我们需要计算绘制位置,所以每次绘制图像时我们都要从上一张图像的末尾开始。 ctx.drawImage}

2.你调用服务器接口来访问数据或下载图像,但服务器仍然返回数据,然后你的代码继续执行其他代码,这显然会导致问题。

wx.downloadFile({ url: URL, success(wr) { //如果成功代码块内有其他执行代码,也可以保证成功获取数据后执行成功。 //如果下载功能是共享的等。由于总是提取计算逻辑,无法保证同步执行}});

解决方案是什么? 对于前者,网上很多解决方案都是加上sync或者await,也有的是加上setInterval。 我没有选择这些解决方案,而是使用了嵌套调用。

/** * 图像处理 */ handleOneImage: function(ctx, Images, idx) { let that = this; oneImage = image[idx]; let pro = new Promise(function(resolve,spect) { if (oneImage ==unknown) { // 绘制结束                                               rawoneImage(CTX, OneImage, that.data.xp) .then (issuccess => {if (issuccess == '成功') {that.handleoneImage(ctx, image, idx+1);}} ;}});返回。 }, /** * 绘制图像 */drawOneImage: function(ctx, image, xp) { let that = this; // 确保获取图像信息和绘制等操作同时完成并显示结果return let pro = new Promise (function(resolve, raise) { wx.getImageInfo({ src: image, success: function(imageInfo) { let iWidth = imageInfo.width; let iHeight = imageInfo.height; dWidth = (iWidth * 580 ) / iHeight(image, xp, 0, ctx.drawing(); xp: that.data.xp + dWidth });resolved('success' ) } });},

第二种情况:事实上,解决第一种情况的代码也用来解决第二种情况。 如果您愿意,Promise 允许您探索上面的代码。

这些解决方案也是我的小程序中的代码片段。 小程的名字叫涂佐耀。 一个漂亮的小程序,用于合成和裁剪图像。 请尝试一下。

推荐教程:《微信小程序》

PHP快速学习视频免费教程(从入门到精通)

如何学习PHP?应该去哪里学习PHP?如何才能快速学习PHP? 这里有简单的 PHP 学习教程(从初学者到专家)。 您可以保存并下载您想学习的朋友。

下载

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:解决小程序中代码同步执行问题(同步小程序与异步小程序的区别) https://zhujicankao.com/123638.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 解决小程序中代码同步执行问题(同步小程序与异步小程序的区别)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!