例如,如果我有一个带有welcome-page.js和welcome-view-model.js的简单应用程序,那么我将从welcome-page.js这样的形式开始
const app = require("tns-core-modules/application");
const WelcomeViewModel = require("./welcome-view-model");
const welcomeViewModel = new WelcomeViewModel();
let page;
exports.onNavigatingTo = (args) => {
page = args.object;
page.bindingContext = welcomeViewModel;
welcomeViewModel.doSomething().then((response) => {
page.bindingContext = response
}).catch((error) => {
console.log(error);
})
}
然后在welcome-view-model.js页面上
const observableModule = require("tns-core-modules/data/observable");
const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray;
function WelcomeViewModel() {
const viewModel = observableModule.fromObject({
dpiWidth: platformModule.screen.mainScreen.widthDIPs,
dpiHeight: platformModule.screen.mainScreen.heightDIPs,
isSubmitted:false,
error:"",
userDetails:"",
allMonths: new ObservableArray([]),
month1: new ObservableArray([])
});
viewModel.doSomething = (arg) => {
return doSomethingThatReturnsAPromise();
}
return viewModel;
}
module.exports = WelcomeViewModel;
那么我如何将其转换为使用异步/等待呢?我发现了这个https://www.youtube.com/watch?time_continue=176&v=9F0sRJQYR9k&feature=emb_logo,但是它没有显示我如何使用Javascript进行操作,在本教程中仅显示Typescript。
如果您认为诺言可能失败,您将只使用async / await关键字并将它们包装在try / catch块中。
exports.onNavigatingTo = async (args) => {
...
try {
const response = await welcomeViewModel.doSomething();
page.bindingContext = response;
} catch(error) {
console.log(error);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句