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

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

      1. <small id='wvkpc'></small><noframes id='wvkpc'>

        在數組javascript的排序函數中實現async/await

        Implement async/await in sort function of arrays javascript(在數組javascript的排序函數中實現async/await)

            • <bdo id='57mh8'></bdo><ul id='57mh8'></ul>

              <small id='57mh8'></small><noframes id='57mh8'>

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

                  本文介紹了在數組javascript的排序函數中實現async/await的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我正在嘗試在量角器 ElementArrayFinder 上實現排序方法.眾所周知,所有量角器方法都返回承諾.所以我的排序方法有一個取決于承諾解決的條件.我正在為 async/await 使用節點插件,以使其與低于 6 的 node.js 版本兼容.(這里的插件:https://www.npmjs.com/package/asyncawait)p>

                  這是我的代碼,其中 thisArrayElementFinder:

                  var asyncCompare = async(function(a, b) {讓 x = 等待 (a.getText());讓 y = 等待 (b.getText());控制臺.log(x.localeCompare(y));返回 x.localeCompare(y);});var sortTheArray = async(函數(arrayOfElementFinders){返回等待(arrayOfElementFinders.sort(asyncCompare));});this.then((元素) => {讓arrayOfElementFinders = [元素[0],元素[1],元素[2]];讓 sortedArray = sortTheArray(arrayOfElementFinders);console.log('數組排序');});

                  不幸的是,時間執行不是我所期望的.print: array sorted 發生在比較 x.localeCompare(y) 之前.知道我在做什么錯嗎?知道如何實現我的目標嗎?

                  非常感謝您的幫助

                  解決方案

                  sort 不采用異步回調.它期望一個數值作為返回值,而不是一個承諾;它確實返回一個數組而不是一個承諾.沒有辦法解決這個問題(盡管可以實現自定義的異步排序算法——甚至是并行算法).

                  但這無論如何都是非常低效的.在每個排序步驟中異步獲取比較值會很慢 - 它會多次獲取每個元素的相同值.不要那樣做.相反,使用 Schwartzian 變換 來獲取要排序的值,然后排序(同步),然后使用結果.

                  你應該這樣做

                  const 元素 = 等待這個;const arrayOfElementFinders = elements.slice(0, 3);//還是 Array.from?常量可比較數組 = await Promise.all(arrayOfElementFinders.map(async x => [await x.getText(), x]));compareArray.sort((a, b) => +(a[0] > b[0]) || -(a[0] < b[0]));const sortedArray = compatibleArray.map(x => x[1]);console.log('數組排序');

                  I am trying to implement a sort method on protractor ElementArrayFinder. As known, all protractor methods return promises. So my sort method has a condition which depends on promises resolution. I am using a node plugin for async/await in order to make it compatible with node.js versions lower than 6. (Here the plugin: https://www.npmjs.com/package/asyncawait)

                  Here my code, where this is the ArrayElementFinder:

                  var asyncCompare = async(function(a, b) {
                      let x = await (a.getText());
                      let y = await (b.getText());
                      console.log(x.localeCompare(y));
                      return x.localeCompare(y);
                  });
                  
                  var sortTheArray = async(function(arrayOfElementFinders) {
                      return await (arrayOfElementFinders.sort(asyncCompare));
                  });
                  
                  this.then((elements) => {
                      let arrayOfElementFinders = [elements[0], elements[1], elements[2]];
                      let sortedArray = sortTheArray(arrayOfElementFinders);
                      console.log('array sorted');
                  });
                  

                  Unfortunately the timing execution is not the one I expect. The print: array sorted happens before than the prints of comparing x.localeCompare(y). Any idea what am I doing wrong? And any idea how to achieve my objective?

                  Thanks a lot for any help

                  解決方案

                  sort does not take an asynchronous callback. It expects a numeric value as the return value, not a promise for one; and it does return an array not a promise. There's no way around this (though one could implement a custom asynchronous sorting algorithm - even a parallel one).

                  But that's pretty inefficient anyway. Doing asynchronous fetching of compare values in every sort step will be slow - and it will fetch the same value per element multiple times. Don't do that. Instead, use a Schwartzian transform to fetch the values to sort by before, then sort (synchronously), then use the results.

                  You should do

                  const elements = await this;
                  const arrayOfElementFinders = elements.slice(0, 3); // or Array.from?
                  const comparableArray = await Promise.all(arrayOfElementFinders.map(async x => [await x.getText(), x]));
                  comparableArray.sort((a, b) => +(a[0] > b[0]) || -(a[0] < b[0]));
                  const sortedArray = comparableArray.map(x => x[1]);
                  console.log('array sorted');
                  

                  這篇關于在數組javascript的排序函數中實現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() 的限制?)

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

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

                            <tfoot id='CBavo'></tfoot>
                              <tbody id='CBavo'></tbody>
                            主站蜘蛛池模板: 99re| 精品国产一区二区三区久久 | avav在线看| 综合色久 | 伊人久操 | 日韩成人在线电影 | 欧美www在线| 国产成人精品一区二区 | 国产福利91精品一区二区三区 | 欧美一级片在线看 | 一级欧美一级日韩片免费观看 | 欧美国产一区二区 | 亚洲精品成人在线 | 性一爱一乱一交一视频 | 国产在线小视频 | 免费欧美| 国产精品久久久久久妇女6080 | 99精品免费视频 | 国产专区在线 | 成人精品一区二区三区四区 | 亚洲综合天堂网 | 成人在线视频一区二区三区 | 久久久一| 男女污污网站 | 中文字幕欧美一区二区 | 精品综合久久 | 精品久久久一区二区 | 欧美精 | 日本人做爰大片免费观看一老师 | 国产99久久精品一区二区永久免费 | 97国产在线视频 | 色资源在线| 欧美理伦片在线播放 | www.亚洲视频 | 97精品超碰一区二区三区 | 中文字幕乱码视频32 | 欧美成人二区 | 亚洲精品68久久久一区 | 欧美日韩亚洲国产综合 | 日韩国产欧美视频 | 日韩在线观看网站 |