用到Promise的静态方法Promise.resolve();
返回值是一个Promise对象
var promise1 = Promise.resolve(123);
promise1.then(function(value) {
console.log(value);
// 输出: 123
});
微信小程序生成图片需要先把图片下载
没有循环之前我是这么做的
// 把网络图片改成临时路径
downLoadImg: function (imgPathArr, fn) {
console.log("开始下载图片")
new Promise((resolve, reject) => {
wx.downloadFile({
url: imgPathArr[0],
success: function (res) {
let arr = [];
console.log("第1张图片下载完成")
resolve(arr)
},
})
}
})
}).then((arr) => {
return new Promise((resolve, reject) => {
wx.downloadFile({
url: imgPathArr[1],
success: function (res) {
arr.push({path:res.tempFilePath})
console.log("第2张图片下载完成")
resolve(arr)
}
})
})
}).then((arr) => {
return new Promise((resolve, reject) => {
wx.downloadFile({
url: imgPathArr[2],
success: function (res) {
arr.push({path:res.tempFilePath})
console.log("第3张图片下载完成")
resolve(arr)
}
})
})
}).then((arr) => {
fn && fn(arr);
})
},
使用循环我是这么做的
// 把网络图片改成临时路径
downLoadImg: function (imgPathArr, fn) {
console.log("开始下载图片")
let promise = Promise.resolve();
let arr = [];
imgPathArr.forEach((url, index) => {
promise = promise.then(() => {
return new Promise((resolve, reject) => {
wx.downloadFile({
url: url,
success: function (res) {
arr.push({ path: res.tempFilePath })
console.log("第"+(index+1)+"张图片下载完成")
resolve(arr)
}
})
})
})
})
promise.then((arr2) => {
console.log(arr2)//这里的arr2和arr的值一样
fn && fn(arr);
})
},