我正在使用Apache Cordova,在关于Promise
对象的多平台问题上遇到了麻烦。
目前,我必须像这样实例化一个promise:
var promise = new Promise(...) {
//Implementation
}
这很好,但如果应用程序运行在Windows平台上,我必须使用WinJS
。像这样:
var promise = new WinJS.Promise(...) {
//Implementation
}
这将导致以下代码:
var promise;
if (cordova.platformId == "windows") {
promise = new WinJS.Promise(...) {
//Implementation
}
}
else {
promise = new Promise(...) {
//Exactly the same implementation as above
}
}
这里的主要问题在于每个Promise中都有重复的实现,导致两个代码块完全相同。因此,它更难以维护。
有没有一种方法可以根据当前平台实例化正确的
Promise
,而不必重复两次代码?