久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

  • <small id='lSzs5'></small><noframes id='lSzs5'>

    <legend id='lSzs5'><style id='lSzs5'><dir id='lSzs5'><q id='lSzs5'></q></dir></style></legend>

  • <i id='lSzs5'><tr id='lSzs5'><dt id='lSzs5'><q id='lSzs5'><span id='lSzs5'><b id='lSzs5'><form id='lSzs5'><ins id='lSzs5'></ins><ul id='lSzs5'></ul><sub id='lSzs5'></sub></form><legend id='lSzs5'></legend><bdo id='lSzs5'><pre id='lSzs5'><center id='lSzs5'></center></pre></bdo></b><th id='lSzs5'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='lSzs5'><tfoot id='lSzs5'></tfoot><dl id='lSzs5'><fieldset id='lSzs5'></fieldset></dl></div>
      <bdo id='lSzs5'></bdo><ul id='lSzs5'></ul>

        <tfoot id='lSzs5'></tfoot>

        解釋 Protractor 中的 async/await

        Explain about async/ await in Protractor(解釋 Protractor 中的 async/await)

        <small id='69tnq'></small><noframes id='69tnq'>

          <tbody id='69tnq'></tbody>
            <bdo id='69tnq'></bdo><ul id='69tnq'></ul>
          • <legend id='69tnq'><style id='69tnq'><dir id='69tnq'><q id='69tnq'></q></dir></style></legend>

              <i id='69tnq'><tr id='69tnq'><dt id='69tnq'><q id='69tnq'><span id='69tnq'><b id='69tnq'><form id='69tnq'><ins id='69tnq'></ins><ul id='69tnq'></ul><sub id='69tnq'></sub></form><legend id='69tnq'></legend><bdo id='69tnq'><pre id='69tnq'><center id='69tnq'></center></pre></bdo></b><th id='69tnq'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='69tnq'><tfoot id='69tnq'></tfoot><dl id='69tnq'><fieldset id='69tnq'></fieldset></dl></div>

                <tfoot id='69tnq'></tfoot>
                • 本文介紹了解釋 Protractor 中的 async/await的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我是量角器的新手.這個函數中的 async/await 是如何工作的?誰能給我解釋一下?

                  I'm new to protractor. How does async/await in this function works? Can anybody explain it to me?

                  it('TC_01 - Verify Home page title', async () => {
                      await headerPage.waitForTitleContain('Homepage', 30000);
                      await expect(headerPage.getTitle()).toEqual('Homepage');
                  });
                  

                  推薦答案

                  這完全是關于 JavaScript 的異步特性.

                  This is all about asynchronous nature of JavaScript.

                  目前 protractor 提出了幾種處理異步操作的方法,(我沒有在這里描述直接的 Promise 鏈和生成器):

                  Currently protractor proposes several ways to handle asynchronous actions, (I didn't describe direct promise chaining, and generators here):

                  1) 承諾管理器/控制流

                  https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs#控制流

                  這是一種抽象,使您的所有操作都被一個一個地調用,就像一個隊列.每個動作都會返回一個特殊的對象——一個 Promise.它表示異步操作的結果,將在將來接收.

                  This is abstraction that makes all your actions to be called one by one, like a queue. Each action returns a special object - a Promise. It represents result of async operation, that will be received in future.

                  2) 第二種方式 - 異步/等待

                  https://ponyfoo.com/articles/understanding-javascript-async-await#using-async-await

                  它是圍繞 Promise 對象的新抽象,允許輕松地逐個鏈接操作.優點是這是本地語言構造,而不是 Promise Manager,并使您的代碼看起來像同步的,帶有 try/catch 和其他熟悉的構造.

                  It is new abstraction around promises objects and allows to easily chain actions one by one. Advantage is this is native language construction, instead of Promise Manager, and makes your code look like synchronized, with try/catch and other familiar constructions.

                  您可以將 await 想象為暫停代碼執行,直到從操作返回的承諾得到解決"

                  You can think of await like "suspend code execution until promise that returned from action is resolved"

                  但是 async/await 仍然可以在內部使用 Promise.

                  But async/await still works with promises inside.

                  在 protractorJS 中使用 async/await 時的一些建議:

                  1. 確保您禁用了控制流/承諾管理器:https://github.com/angular/protractor/blob/master/lib/config.ts#L714將等待與啟用的控制流混合可能會導致不可預知的結果.

                  1. Make sure you disabled control flow / promise manager: https://github.com/angular/protractor/blob/master/lib/config.ts#L714 Mixing awaits with enabled control flow may lead to unpredictable results.

                  不要忘記在所有異步操作前加上 await(通常這都是量角器 api 方法).如果您忘記執行此操作 - 沒有 await 的操作不會與其他操作一起排隊,因此操作順序將被破壞

                  Do not forget to prepend ALL your async actions with await (usually this is all protractor api methods). If you will forgot to do this - action without await won't be queued with other actions, so order of actions will be broken

                  確保您使用的是支持此功能的 nodejs - 至少 nodejs 7.8.x(或更高版本).如果使用 TypeScript,請將編譯目標設置為target":es2017"

                  Make sure you are using nodejs that supports this - at least nodejs 7.8.x (or newer). If TypeScript is used, set compile target as "target": "es2017"

                  為了不忘記應該在哪里使用 await,而在哪里不使用,我可以建議使用插件設置 eslint - https://www.npmjs.com/package/eslint-plugin-no-floating-promise 并配置 eslint 為這條規則拋出錯誤:https://eslint.org/docs/user-guide/configuring/rules#配置規則

                  To not forget where await should be used, and where is not, i can suggest to setup eslint with plugin - https://www.npmjs.com/package/eslint-plugin-no-floating-promise and configure eslint to throw errors for this rule: https://eslint.org/docs/user-guide/configuring/rules#configuring-rules

                  更多閱讀:https://github.com/angular/protractor/blob/master/docs/control-flow.md

                  https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs#option-3-migrate-to-asyncawait

                  這篇關于解釋 Protractor 中的 async/await的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Browser waits for ajax call to complete even after abort has been called (jQuery)(即使在調用 abort (jQuery) 之后,瀏覽器也會等待 ajax 調用完成)
                  JavaScript innerHTML is not working for IE?(JavaScript innerHTML 不適用于 IE?)
                  XMLHttpRequest cannot load, No #39;Access-Control-Allow-Origin#39; header is present on the requested resource(XMLHttpRequest 無法加載,請求的資源上不存在“Access-Control-Allow-Origin標頭) - IT屋-程序員軟件開發技術分
                  Is it possible for XHR HEAD requests to not follow redirects (301 302)(XHR HEAD 請求是否有可能不遵循重定向 (301 302))
                  XMLHttpRequest 206 Partial Content(XMLHttpRequest 206 部分內容)
                  Restrictions of XMLHttpRequest#39;s getResponseHeader()?(XMLHttpRequest 的 getResponseHeader() 的限制?)
                  <tfoot id='kqqet'></tfoot>

                  <i id='kqqet'><tr id='kqqet'><dt id='kqqet'><q id='kqqet'><span id='kqqet'><b id='kqqet'><form id='kqqet'><ins id='kqqet'></ins><ul id='kqqet'></ul><sub id='kqqet'></sub></form><legend id='kqqet'></legend><bdo id='kqqet'><pre id='kqqet'><center id='kqqet'></center></pre></bdo></b><th id='kqqet'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='kqqet'><tfoot id='kqqet'></tfoot><dl id='kqqet'><fieldset id='kqqet'></fieldset></dl></div>

                  1. <legend id='kqqet'><style id='kqqet'><dir id='kqqet'><q id='kqqet'></q></dir></style></legend>

                      • <small id='kqqet'></small><noframes id='kqqet'>

                            <tbody id='kqqet'></tbody>
                            <bdo id='kqqet'></bdo><ul id='kqqet'></ul>
                            主站蜘蛛池模板: 亚洲高清中文字幕 | 天天天天天天天干 | 国产9999精品 | 日韩在线免费 | 91九色在线观看 | 在线中文av | 成人片网址 | 香蕉国产在线视频 | 91精品亚洲| 久久精品国产久精国产 | 中日韩毛片 | 三级视频久久 | 国产精品日本一区二区在线播放 | 美女艹b| 久久久免费少妇高潮毛片 | 欧美不卡一区二区三区 | 九九久久免费视频 | 完全免费av在线 | 亚洲国产中文在线 | 久久久久久久久久久久久久久久久久久久 | 女同久久| 精产国产伦理一二三区 | 久久99精品视频 | 九九在线精品视频 | 日本一道本视频 | 日本粉嫩一区二区三区视频 | 亚洲综合日韩精品欧美综合区 | 美女拍拍拍网站 | 国产精品久久国产精品 | 中文字幕久久精品 | 91久久夜色 | 97在线观看 | 久久在线| 天天天操操操 | 亚洲一级黄色 | 日韩色图在线观看 | 天天插日日操 | 亚洲精品www| 亚洲视频免费在线播放 | 欧美日韩国产一区二区三区不卡 | 亚洲综合色 |