求教,new Promise 和 async可以混用么?需求是要把多个await封装成一个新的功能,方便外部调用使用,像下面这样调用有什么隐患么?如果能用,哪种方式好?(上传不了图片,一上传谷歌浏览器就崩溃)
方式一:async写在new promise括号里
return new Promise(async(resolve, reject) => {
try {
let ttlRe = await redisApply.redisGetTTL(key);
if (ttlRe.message == -1 || ttlRe.message == -2 || !ttlRe) {
console.log('过期重新生成:' + ttl)
let zz = await redisApply.redisKeySet(key, value, ttl)
resolve({a: zz});
}else {
resolve({a: 's'});
}
} catch (err) {
console.log('出错了:' + err);
reject(err);
}
});
方式二:async写在代码里
```js\n
return new Promise((resolve, reject) => {
(async () => {
try {
let ttlRe = await redisApply.redisGetTTL(key);
if (ttlRe.message == -1 || ttlRe.message == -2 || !ttlRe) {
console.log('过期重新生成:' + ttl)
let zz = await redisApply.redisKeySet(key, value, ttl)
resolve({a: zz});
} else {
resolve({a: 's'});
}
} catch (err) {
console.log('出错了:' + err);
reject(err);
}
})();
})
}