例如,如果我有一个带有 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;
那么我如何将其转换为使用 async/await?我找到了这个 https://www.youtube.com/watch?time_continue=176&v=9F0sRJQYR9k&feature=emb_logo但它没有显示我如何使用 Javascript,本教程中仅使用 Typescript。
最佳答案
如果您认为 promise 可能会失败,您将只使用 async/await 关键字并将它们包装在 try/catch block 中。
exports.onNavigatingTo = async (args) => {
...
try {
const response = await welcomeViewModel.doSomething();
page.bindingContext = response;
} catch(error) {
console.log(error);
}
}
关于javascript - 如何在 nativescript 中执行 Async/Await?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59585186/