ES6 中的 三種非同步解決方案

2021-08-21 03:56:43 字數 1081 閱讀 7670

generator 函式 執行會返回乙個迭代器(iterator), 在迭代器上可以呼叫  next() 方法, 執行下乙個 yield  或 return

呼叫  next() 方法,會返回乙個物件, value 的值 為 yield 之後表示式的值,done 的值 表示迭代器,是否已經執行完畢(最後乙個yield  或 return )next() 方法,可以傳入乙個值,做為前乙個yield 表示式的返回值

const fs =

require(

'fs')

// promise 版的readfile

const readfile =

function (filename) ) 

}) }

const gen =

function * ()

// 基於 generator 和 promise 的自動執行器

function run(gen) 

next(); }

run(gen);

const fs =

require(

'fs')

// 把乙個單一執行的函式 ,變成需要再次呼叫的函式,固定一部分引數

function

thunkify(fn, obj = {})  }}

const readfile = thunkify(fs.readfile, fs);

const gen =

function ()

// 基於 generator 和 thunk函式的自動執行器

function

run(fn)  

next();

}run(gen);

const fs =

require(

'fs')

// promise 版的readfile

const readfile =

function (filename) ) })}

const asyncreadfile =

async

function () ;

asyncreadfile();

ES6非同步解決方案promise原理及簡單實現

promise是es6規範中定義的一種非同步解決方案,它可以在非同步函式處理流程中分離執行 和處理結果,還能夠新增處理成功 失敗後的鉤子函式,下面是乙個簡單案例 new promise funcion resolve,reject 2000 then msg 上述 可以看到,首先是new乙個prom...

ES6執行的三種方式

第一種 瀏覽器直接顯示 babel瀏覽器指令碼 轉換 babeljs.io repl 第三種 babel node.js 工具把es6轉換成es5,然後用node.js執行es5 安裝node,node安裝成功後驗證方式 安裝git,git安裝成功後驗證方式 安裝cnpm,安裝的命令 npm ins...

stricky footer的三種解決方案詳解

stricky footer設計是最古老和最常見的效果之一,我們都曾經歷過類似的情景 如果頁面內容不夠長的時候,頁尾塊貼上在底部 如果內容足夠長時,頁尾塊會被內容向下推送。這些天做vue express實戰的練習,跟著黃軼老師倒是認識了stricky footer,就認真的了解學習了一下,但是前兩天...