如何在本机脚本中执行Async / Await?

杰西PP

例如,如果我有一个带有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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Gulp 4中使用async / await?

来自分类Dev

如何在 Node.js 中使用“async/await”和“promises”进行同步执行?

来自分类Dev

httpclient async / await是否

来自分类Dev

ReaderWriterLockSlim和async \ await

来自分类Dev

EvaulateScriptAsPromiseAsync和async / await

来自分类Dev

正确使用Async / Await

来自分类Dev

Mongodb async await with express

来自分类Dev

使async / await循环按顺序执行

来自分类Dev

async/await 函数未按正确顺序执行

来自分类Dev

Async/Await 和 Web API 阻止执行

来自分类Dev

在.then中添加await

来自分类Dev

如何在findOneAndUpdate中使用async-await

来自分类Dev

如何在Listview构建器中使用async / await

来自分类Dev

如何在 promise 中使用 async/await - Vue

来自分类Dev

如何在 Tokio 中使用 async/await 语法?

来自分类Dev

如何在没有错误和警告的情况下在 Typescript 中包装 async/await

来自分类Dev

如何在本机Ruby脚本中执行简单的GraphQL查询

来自分类Dev

与Node js async / await相比,了解Python async / await

来自分类Dev

如何使用async / await捕获引发的错误?

来自分类Dev

async-await如何不阻塞?

来自分类Dev

如何使用await / async等待资源

来自分类Dev

如何使用async / await设置TaskContinuationOptions?

来自分类Dev

如何使用async / await异步创建DispatcherObject?

来自分类Dev

async-await如何不阻塞?

来自分类Dev

如何使用 async/await 处理错误?

来自分类Dev

如何使用 async/await 避免“承诺中未捕获的错误”

来自分类Dev

async/await behaviour of mongoose findById

来自分类Dev

async and await not returning to caller as expected

来自分类Dev

正确使用Async / Await的困惑