[英]How do I do two operations per one ternary option in node.js?
有條件,這也是三元選擇
?spotify.search({type:'track',query:`${d}`},(e2,d2)=>!!e2
因此,如果有錯誤或沒有錯誤,它將轉到
?console.log(e2)
:console.log(`Artist ${d2.tracks.items[0].artists[0].name}, album ${d2.tracks.items[0].album.name}, song ${d2.tracks.items[0].name}, preview url ${d2.tracks.items[0].preview_url}`))
但是,對於第二個選項,我想做的比console.log還要多。我還想附加一個日志文本文件,而不會丟失回調函數中的數據。 有什么辦法可以同時執行console.log和下面的三進制選項的代碼行嗎?
require(`fs`).appendFile(`log.txt`,`Artist ${d2.tracks.items[0].artists[0].name}, album ${d2.tracks.items[0].album.name}, song ${d2.tracks.items[0].name}, preview url ${d2.tracks.items[0].preview_url}`,`utf8`,e=>e?console.log(e):true)
在這里,它識別為未定義
(e2,d2)=>!!e2
?console.log(e2)
:(console.log(`Artist ${d2.tracks.items[0].artists[0].name}, album ${d2.tracks.items[0].album.name}, song ${d2.tracks.items[0].name}, preview url ${d2.tracks.items[0].preview_url}`)),
require(`fs`).appendFile(`log.txt`,`Artist ${d2.tracks.items[0].artists[0].name}, album ${d2.tracks.items[0].album.name}, song ${d2.tracks.items[0].name}, preview url ${d2.tracks.items[0].preview_url}`,`utf8`,e3=>e3?console.log(e3):true))
您可以使用逗號運算符,該運算符計算逗號分隔的表達式列表並返回最后一個表達式的值:
? console.log(e2)
: (
console.log(`Artist ${d2.tracks.items[0].artists[0].name}, album ${d2.tracks.items[0].album.name}, song ${d2.tracks.items[0].name}, preview url ${d2.tracks.items[0].preview_url}`)),
require(`fs`).appendFile(`log.txt`,`Artist ${d2.tracks.items[0].artists[0].name}, album ${d2.tracks.items[0].album.name}, song ${d2.tracks.items[0].name}, preview url ${d2.tracks.items[0].preview_url}`,`utf8`,e=>e?console.log(e):true)
);
但是我不建議這樣做,因為它不太可讀。 條件運算符可能僅應在需要使用結果表達式時才使用-否則,請使用if
/ else
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.