未处理的承诺拒绝警告(Cordova Angular)
Posted
技术标签:
【中文标题】未处理的承诺拒绝警告(Cordova Angular)【英文标题】:Unhandled Promise Rejection Warning (Cordova Angular) 【发布时间】:2018-07-02 17:42:02 【问题描述】:当我在 cmd cordova run android
中执行时,它返回:
Android Studio project detected
(node:6824) UnhandledPromiseRejectionWarning: Unhandled Promise Rejection (rejection id: 1): Operation Failed
(node: 6824) [DEP0018] DeprecationWarning: Unhandled Promise Rejections are deprecated. In the future, promise rejections
that are not handled will terminate the node.js process with a non-zero exit code.
我不明白这个问题,如果你对我有任何建议。我已经在***上阅读了这个问题的其他一些答案,但是.. 这是我下面的代码
module.exports = function(ctx)
// make sure android platform is part of build
if (ctx.opts.platforms.indexOf('android') < 0)
return;
var fs = ctx.requireCordovaModule('fs'),
path = ctx.requireCordovaModule('path'),
deferral = ctx.requireCordovaModule('q').defer();
var platformRoot = path.join(ctx.opts.projectRoot, 'platforms/android');
var apkFileLocation = path.join(platformRoot, 'build/outputs/apk/android-debug.apk');
fs.stat(apkFileLocation, function(err,stats)
if (err)
deferral.reject('Operation failed');
else
console.log('Size of ' + apkFileLocation + ' is ' + stats.size +' bytes');
deferral.resolve();
);
return deferral.promise;;
感谢您的帮助。
【问题讨论】:
不要只用“操作失败”来拒绝defarral
,而是尝试传入err
对象以获取错误消息。试试deferral.reject('Operation failed: ' + err);
或deferral.reject('Operation failed: ' + JSON.stringify(err));
【参考方案1】:
错误意味着你需要处理从 Promise 中抛出的异常。
promise.then(...).catch(...)
如果你不能这样做,你需要避免deferral.reject
。
【讨论】:
以上是关于未处理的承诺拒绝警告(Cordova Angular)的主要内容,如果未能解决你的问题,请参考以下文章
NestJS/Fastify Cookie 未处理的承诺拒绝警告
Puppeteer -Getting UnhandledPromiseRejectionWarning:管道中未处理的承诺拒绝