.then(r => promise
return serverstatuspromise(r);
}).then(resp => )
var statusprom = fetchserverstatus();
var proma = statusprom.then(r => (r.statuscode === 200 ? "good" : "bad"));
var promb = proma.then(r => (r === "good" ? "all ok" : "notok"));
var promc = statusprom.then(r => fetchthisanotherthing());
function
yourfunc()
function
youreviluncle(prom)
return
newpromise((res, rej) => );
});
// 錯誤用法
return
newpromise((res, rej) => )
.catch(err => rej(err))
})// 正確用法
// 看上去對就是對的
return fetchsomedata(...);
const = require('util');
const fs = require('fs');
const readfileasync = promisify(fs.readfile);
readfileasync('myfile.txt', 'utf-8')
.then(r => console.log(r))
.catch(e => console.error(e));
var similarprom = new
promise(res => res(5));
// 相當於
var prom = promise.resolve(5);
// 將乙個同步函式轉成非同步的
function
foo()
function
goodprom(maybepromise)
goodprom(5).then(console.log); // 5
// 這個 promise resolve 成 5
var sixpromise = fetchmenumber(6);
goodprom(sixpromise).then(console.log); // 6
// 5,注意,每層 promise 都被自動 unwrap 了
goodprom(promise.resolve(promise.resolve(5))).then(console.log);
var rejprom = new
promise((res, reject) => reject(5));
rejprom.catch(e => console.log(e)) // 5
function
foo(myval)
return
newpromise((res, rej) => )
}
.then(val =>
}).catch(e => console.log(e)) // not good
接受乙個 promise 的陣列
等待所有這些 promise 完成
返回乙個新的 promise,將所有的 resolve 結果放進乙個陣列裡
只要有乙個 promise 失敗/rejected,這個新的 promise 將會被 rejected
var prom1 = promise.resolve(5);
var prom2 = fetchserverstatus(); // returns a promise of
proimise.all([prom1, prom2])
.then([val1, val2] => )
var prom1 = promise.reject(5);
var prom2 = fetchserverstatus(); // returns a promise of
proimise.all([prom1, prom2])
.then([val1, val2] => )
.catch(e => console.log(e)) // 5, jumps directly to .catch
return fetchsomedata(...);
.catch(e => )
.then(r => )
.catch(e => )
.catch(e => )
.then(r => )
.catch(e => )
.then(function() ).catch(function(e) );
.then(function() , function(e) );
// 錯誤用法
request(opts)
.catch(err =>
})// 正確用法
request(opts)
.catch(err =>
return
promise.reject(err);
}).then(r => r.text())
.catch(err => console.erro(err));
.then(myval => )
})
.then(myval => )
.then(([vala, valb]) => )
Linux使用技巧33則
原貼 http www.turingtoday.net www articlecontent.asp?id 2206 1 host的樂趣 host能夠用來查詢網域名稱,然而它可以得到更多的資訊。host t mx linux.com可以查詢出linux.com的mx記錄,以及處理mail的host的...
Word使用技巧五則
一 使用格式刷 在word中,可以使用 格式刷 方便地將某種格式複製到多個段落,操作方法為 1 選定要進行格式複製的文字,雙擊 格式刷 工具按鈕,這時滑鼠指標會變成格式刷形狀 2 將滑鼠移至要改變格式的段落,單擊滑鼠左鍵,或者在文件中選定要改變格式的文字 3 重複步驟2,可進行多次複製操作,直到再次...
FlashFXP使用技巧五則
中國電腦教育報 一 讓不同版本flashfxp的站點密碼明文顯示 預設情況下flashfxp的站點管理器密碼以星號密文顯示,不過對於非公共電腦使用者來說,這樣極不方便我們檢視。要讓ftp賬戶密碼以明文的方式顯示,不同版本的flashfxp操作方法不同 老版本flashfxp 2.x以前版本 首先在f...