function p(){ return new Promise((resolve, reject) => { reject(); }); } p().then(()=>{ console.log(1); })
重新編輯了下問題, 就是想問p()的.catch()我不寫, 函數p內部要如何寫瀏覽器才能不報錯
兩個問題:1.return 不是 retrun2.new Promise後需要加一個括號
故原代碼如下
var x = 10; function p() { return new Promise((resolve, reject)=>{ if(1 < x) { resolve(); } if(5 < x) { reject(); } }); } p().then(() => { alert(1) })
這樣呼叫不會出問題, 另外1即使是reject()執行了,promise的拋錯也是promise的事,與P函數無關,promise的拋錯只能在promise後面加catch語句捕獲.由於p函數返回了new出來的promise,故在p函數執行結果後面加catch語句即可.推薦看下這篇文章: Promise使用手冊
兩個問題:
1.return 不是 retrun
2.new Promise後需要加一個括號
故原代碼如下
這樣呼叫不會出問題, 另外1即使是reject()執行了,promise的拋錯也是promise的事,與P函數無關,promise的拋錯只能在promise後面加catch語句捕獲.由於p函數返回了new出來的promise,故在p函數執行結果後面加catch語句即可.
推薦看下這篇文章: Promise使用手冊